設置多個項目的onClick監聽器我想實現一個選擇列表。每個項目都是一個imageview。
當用戶點擊一個視圖,自定義對話框打開一個顯示在列表中56個ImageViews。
用戶可以點擊一個選擇它。
圖像視圖具有像這樣命名的圖像items_r1_c1 ... items_r56_c1。
我必須爲每個圖像視圖實現onClickListeners。
相反,我這樣做:陣列中的
private int i; // This is int the outer class.
...
private ImageView [] spec = new ImageView[56];
myView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//set up dialog
try {
final Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.myCustomList);
dialog.setTitle("Select one of 56");
dialog.setCancelable(true);
dialog.show();
String s = null;
//This is where I automate the ImageView object creation
for (i=2; i<=56; i++) {
s = "items_r"+Integer.toString(i)+"_c1";
spec[i] = (ImageView) findViewById(getResources().getIdentifier(s,"drawable",getPackageName()));
spec[i].setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
myItem.setItem(Integer.toString(i));
if(i == 0) myItem.setItem("invalid");
Log.e(tag, myItem.getItem());
dialog.dismiss();
}
});
}
} catch (Exception e) {
Log.e(tag, e.toString());
}
}
但是我沒有得到我預期的行爲。
我在做什麼錯?什麼是這樣做的有效方式,而不是寫onClick監聽器。
謝謝。
謝謝。將進行更改。 – Brahadeesh