使用警告对话框从内部类访问变量

时间:2015-10-20 12:22:22

标签: java android

我正在创建一个用于转换不同风速的Android Java应用程序,并且我根据所需的转换设置了if语句。在alertdialog确认用户选择后,我使用意图转移到第二个活动。问题是,在内部类中没有访问意图变量,并且它无法找到符号方法onclicklistener。有任何想法吗?

Intent i = new Intent(getBaseContext(), DisplayCalculationActivity.class);
        i.putExtra("speedValue",speed);
        i.putExtra("measurement", measurement);

        AlertDialog dialog = new AlertDialog.Builder(this).create();
        dialog.setMessage("Are you sure you want to convert\n " + speed + "from " + measurement);
        dialog.setButton(DialogInterface.BUTTON_POSITIVE, "Convert",
                DialogInterface.OnClickListener(new OnClickListener() {
                    public void onClick(View v) {

                        startActivity(i);
                    }
                })
        );

        dialog.setButton(DialogInterface.BUTTON_NEGATIVE, "No",
                DialogInterface.OnClickListener(new OnClickListener() {
                    public void onClick(View v)  {

                        dialog.dismiss();
                    }
                })
        );


        dialog.setButton(DialogInterface.BUTTON_NEUTRAL, "Cancel",
                DialogInterface.OnClickListener(new OnClickListener() {
                    public void onClick(View v) {

                        dialog.dismiss();
                    }
                })
        );


    }

2 个答案:

答案 0 :(得分:0)

您需要将i声明为最终版。

答案 1 :(得分:0)

将Intent声明为final,并更正您对OnClickListener的使用。

e.g

dialog.setButton(DialogInterface.BUTTON_POSITIVE, "Convert", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                DisplayCalculationActivity.this.startActivity(i);
            }
        }
);
相关问题