我正在创建一个用于转换不同风速的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();
}
})
);
}
答案 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);
}
}
);