我在图像上使用onClick来运行AlertDialog。 onClick在AsyncTask的onPostExecute中设置。
ImageView image = new ImageView(getApplicationContext());
image.setBackgroundResource(R.drawable.ic_action_discard);
image.setId(n);
image.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
showpopup();
}
});
当显示对话框,并且用户按下正面按钮时,我需要运行带有图像ID的查询..
如何在下一课中获得图像的ID;
public void showpopup() {
new AlertDialog.Builder(this)
.setTitle(getString(R.string.Alertdialognl1))
.setMessage(getString(R.string.Alertdialognl2))
.setPositiveButton(getString(R.string.Alertdialognlja),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface Dialog,
int which) {
Log.i("positive", "clicked");
}
})
.setNegativeButton(getString(R.string.Alertdialognlnee),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface Dialog,
int which) {
Log.i("negative", "clicked");
}
}).show();
}
答案 0 :(得分:1)
您可以将id作为final int
传递给showPopuppublic void showPopup(final int id) {
...
.setPositiveButton(getString(R.string.Alertdialognlja),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface Dialog,
int which) {
Log.i("positive", "clicked with id: " + id);
}
})
...
}
答案 1 :(得分:0)
变化
public void onClick(View v)
到
public void onClick(final View v)
这样您就可以访问对话框按钮onClickListener
内的点击视图。
另外
showpopup()
public void showpopup()
到
showpopup(v)
public void showpopup(View V)
PS:将View v
内的showpopup()
Typecast导入ImageView
并使用v.getId();
答案 2 :(得分:0)
执行此操作的一种方法是创建AsyncTask子类,并将Id存储在该类中。然后将id作为实例变量存储在asynctask子类中,并在activity中创建asynctask子类的实例,并为Id创建一个getter。