我有一個片段類內的列表視圖。當一個列表視圖項被點擊時,另一個活動被打開。該活動的xml文件在滾動視圖內有2個圖像視圖。圖像相對於每個點擊的列表視圖項目而改變。在我的應用中有5個列表視圖。每個listview有400多個項目。使用什麼方法才能順利運行。 switch語句是個好主意嗎?目前我正在使用switch語句,目前只有4個項目。我應該保持這種方法嗎?如何處理非常大的listview項目?通過switch語句或if/else語句?
我的代碼
public class urdufrag1 extends Fragment {
public urdufrag1() {
// Required empty public constructor
}
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
}
private static final String TAG = "urdufrag1";
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup
main_content, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.geetfrag_urdu, main_content, false);
final int[] menuImage = {R.drawable.tgeet94,
R.drawable.tgeet95,R.drawable.tgeet96,R.drawable.tgeet97};
final ListView listView = (ListView) view.findViewById(R.id.GeetListU);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
Intent intent = new Intent(getActivity(), PackageG.class);
intent.putExtra("position", position);
startActivity(intent);
}
});
AdapterGeetUrdu adapter = new AdapterGeetUrdu(getContext(), menuImage);
listView.setAdapter(adapter);
// Inflate the layout for this fragment
return view;
}
}
次活動
public class PackageG extends AppCompatActivity {
ImageView img1, img2;
PhotoViewAttacher mAttacher;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_package_g);
img1 = (ImageView) findViewById(R.id.imageView8);
img2 = (ImageView) findViewById(R.id.imageView9);
mAttacher = new PhotoViewAttacher(img1);
mAttacher = new PhotoViewAttacher(img2);
Intent intent = this.getIntent();
if(intent != null){
Integer position = intent.getExtras().getInt("position");
switch (position){
case 0: img1.setImageResource(R.drawable.geet94);
img2.setImageResource(R.drawable.geet94_1);
break;
case 1: img1.setImageResource(R.drawable.geet95);
img2.setImageResource(R.drawable.geet95_1);
break;
case 2: img1.setImageResource(R.drawable.geet96);
img2.setImageResource(R.drawable.geet96_1);
break;
default:
img1.setImageResource(R.drawable.carol);
img2.setImageResource(R.drawable.carol);
break;
}
}
mAttacher.update();
}
}
Nopes。但是我問這是因爲我不確定400 + switch語句是否正常工作,或者我應該使用一些不同的方法? –
[Resources#getIdentifier(String name,String defType,String defPackage)](https://stackoverflow.com/questions/15503639/how-i-can-optimize-this-code-that-contain-some-repetitive-line #answer-15503893)返回給定資源名稱的資源標識符。 – matoni