我想在alertDialog的onClick事件中清除imageview。我将整数索引传递给Show_Alert方法,如下所示。 IMGS是imageView阵列。该阵列中有8个图像。
Show_Alert("Confirm", "Do you want to Delete this",true, true,1);
但错误是
“不能引用内部类中的非final变量选项 用不同的方法定义“
所以我创建了一个最终的int选项变量
final int option;
option=opt;
但它没有按预期工作。需要一些帮助。
这是我的Show_alert方法
private void Show_Alert(String title, String message,boolean okButton, boolean cancelButton,int opt)
{
final int option;
option=opt;
AlertDialog.Builder alertDialog = new AlertDialog.Builder(capture_details.this);
alertDialog.setTitle(title);
alertDialog.setMessage(message);
if(cancelButton==true)
{
alertDialog.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
}
if(okButton==true && option!=-1)
{
alertDialog.setPositiveButton("Ok",new DialogInterface.OnClickListener() {
@SuppressLint("NewApi")
public void onClick(DialogInterface dialog, int which) {
if(option==1)
{
IMGS[option].setImageResource(R.drawable.image1);
IMGS[option].setScaleType(ImageView.ScaleType.CENTER_INSIDE) ;
IMGS[option].setTag(null);
}
}
});
}
else if(okButton==true)
{
alertDialog.setPositiveButton("Ok",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
});
}
// Showing Alert Message
alertDialog.show();
}
答案 0 :(得分:0)
请尝试以下对话框的onclick侦听器的此代码。声明一个全局AlertDialog变量。将Show_Alert更改为以下代码。添加@Override方法。在.setPositiveButton中,您可以设置“确定”按钮的代码。在.setNegativeButton中,您可以设置CANCEL按钮的代码。不知道它是否能立即发挥作用,但在我看来它接近你的解决方案。它是我写的一些原始未经测试的代码。
也许在其他stackoverflow用户的帮助下,我们可以让我的代码在下面工作,如果它不工作(随意编辑下面的代码)。否则Google将为您提供很多帮助。
private AlertDialog alertdialog;
private void Show_Alert(String title, String message) {
alertDialog = new AlertDialog.Builder(capture_details.this);
alertDialog.setTitle(title);
alertDialog.setMessage(message);
alertDialog = builder.create();
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the Builder class for convenient dialog construction
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage(R.string.dialog_fire_missiles)
.setPositiveButton(R.string.fire, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// OK pressed
}
})
.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// CANCEL pressed
}
});
// Create the AlertDialog object and return it
return builder.create();
}