android |多个onclicklistener in对话框
在我的活动中,我启动一个简单的对话框android |多个onclicklistener in对话框,android,dialog,onclicklistener,Android,Dialog,Onclicklistener,在我的活动中,我启动一个简单的对话框 final Dialog myDialog = new Dialog(this); myDialog.setContentView(R.layout.testing); ... 我的testing.xml布局只包含10个ImageView,id为“1”到“10” 我希望每个ImageView都可以单击并执行一些操作。 .xml文件中的define The onclick()方法不起作用,因为在查看对话框时找不到该方法 我让它工作的唯一方法是:定义10个on
final Dialog myDialog = new Dialog(this);
myDialog.setContentView(R.layout.testing);
...
我的testing.xml布局只包含10个ImageView,id为“1”到“10”
我希望每个ImageView都可以单击并执行一些操作。
.xml文件中的define The 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次几乎相同的行
所以我的问题是:如何使用干净的代码使其工作?
我考虑过使用多个onClick侦听器(覆盖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" />
活动
/片段
实现OnClickListener
onClick
方法onClickListener
s,如下所示:
img_1.setOnClickListener(YourActivity.this);
onClick
方法中,您可以按如下方式放置一个开关案例或一个if-else-if案例
@Override
public void onClick(View v)
{
if(v==img_1) {
//do this
} else if(v==img_2) {
//do that
}...
}
或
活动
/片段
实现OnClickListener
onClick
方法onClickListener
s,如下所示:
img_1.setOnClickListener(YourActivity.this);
onClick
方法中,您可以按如下方式放置一个开关案例或一个if-else-if案例
@Override
public void onClick(View v)
{
if(v==img_1) {
//do this
} else if(v==img_2) {
//do that
}...
}
或
使您的活动实现
OnClickListener
,然后处理onClick
事件,如下所示:
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.img1:
...
break;
case R.id.img2:
...
break;
}
}
使您的活动实现
OnClickListener
,然后处理onClick
事件,如下所示:
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.img1:
...
break;
case R.id.img2:
...
break;
}
}
在.xml中定义onclick()方法是什么意思。把这个.xml文件也发了出来,我添加了它,谢谢大家的关注!单击图像时,找不到“myFunction()”。请使用前面提到的开关大小写
覆盖onClick()函数,并在函数或类似的内容中进行开关/大小写。但是首先要重命名你的ID。不允许使用数字id,请使用img1、img2。在.xml中定义onclick()方法是什么意思。把这个.xml文件也发了出来,我添加了它,谢谢大家的关注!单击图像时,找不到“myFunction()”。请使用前面提到的开关大小写覆盖onClick()函数,并在函数或类似的内容中进行开关/大小写。但是首先要重命名你的ID。不允许使用数字id,请使用img1、img2。抱歉,由于某些原因,第一段代码没有格式化!“case img_1.getId():”不起作用,但当我写“case R.id.1”时它就起作用了,谢谢!很抱歉,由于某些原因,第一段代码没有格式化!“case img_1.getId():”不起作用,但当我写“case R.id.1”时它就起作用了,谢谢!实际上你不能将id定义为数字。实际上你不能将id定义为数字。