我的活動內我開始一個簡單的對話框。android |多個onclicklistener在對話框中
final Dialog myDialog = new Dialog(this);
myDialog.setContentView(R.layout.testing);
...
我的testing.xml佈局只包含10個ImageViews,ID是'1'到'10'。
我希望每個ImageView都是可點擊的並且可以做某些事情。 在.xml文件中定義onclick()方法不起作用,因爲在查看對話框時無法找到方法。
我得到了它的工作是以下的唯一方法:定義10的onclick-聽衆:
ImageView img_1 = (ImageView) myDialog.findViewById(R.id.1);
ImageView img_2 = (ImageView) myDialog.findViewById(R.id.2);
...
img_1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
execute_funtion(1);
myDialog.cancel();
}
});
img_2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
execute_funtion(2);
myDialog.cancel();
}
});
...
然而,這是非常糟糕的代碼,我有10次幾乎相同的線。
所以我的問題:我怎樣才能使用乾淨的代碼工作? 我想過一個多onclicklistener(overwride onClick()函數,並在函數或類似的東西做一個開關/案例),但它不工作。
我很高興每個想法! 感謝
/EDIT
這裏.xml文件
<ImageView
android:id="@+id/1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="2dp"
android:onClick="myFunction"
android:src="@drawable/ic_launcher" />
你是什麼意思**定義在.XML的onclick()梅索德**。發佈該.xml文件以及 – CRUSADER 2013-05-12 07:27:40
我添加了它,感謝您的關注! 單擊圖像時,找不到「myFunction()」。 – user1885484 2013-05-12 07:34:44
正如你所提到的那樣使用開關盒'overwride onClick()函數,並在函數或類似的東西中做一個開關/盒'。但首先重命名你的ID。它不允許使用數字標識,而是使用img1,img2。 – andrew 2013-05-12 07:37:50