清除alertDialog的onClick事件的imageview

时间:2014-02-14 14:35:25

标签: android android-imageview alertdialog onclicklistener

我想在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();
        }

1 个答案:

答案 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();
}