在我的活动中,我开始了一个简单的对话框。
final Dialog myDialog = new Dialog(this);
myDialog.setContentView(R.layout.testing);
...
我的 testing.xml 布局仅包含 10 个 ImageView,id 为“1”到“10”。
我希望每个 ImageView 都可以点击并做一些事情。在 .xml 文件中定义 onclick() 方法不起作用,因为在查看对话框时找不到该方法。
我让它工作的唯一方法是:定义 10 个 onclick-listeners:
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(覆盖 onClick() 函数并在函数中进行切换/案例或类似的东西),但它不起作用。
我对每一个想法都很满意!谢谢
/编辑
这里是 .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" />