Eclipse 为什么监听器不工作?
我写了这段代码,我想在用户决定退出我的应用程序时使用它。 当我激活它时,Eclipse告诉我yes按钮有错误。这一行是有问题的:Eclipse 为什么监听器不工作?,eclipse,button,view,onclick,onclicklistener,Eclipse,Button,View,Onclick,Onclicklistener,我写了这段代码,我想在用户决定退出我的应用程序时使用它。 当我激活它时,Eclipse告诉我yes按钮有错误。这一行是有问题的:yes.setOnClickListener(newview.OnClickListener(){ 这是完整的代码: @覆盖 public void onBackPressed(){ //TODO自动生成的方法存根 super.onBackPressed(); 最终对话框exitDialog=新对话框(本); exitDialog.setTitle(“出口”); exi
yes.setOnClickListener(newview.OnClickListener(){
这是完整的代码:
@覆盖
public void onBackPressed(){
//TODO自动生成的方法存根
super.onBackPressed();
最终对话框exitDialog=新对话框(本);
exitDialog.setTitle(“出口”);
exitDialog.setContentView(R.layout.exit_对话框);
你应该使用
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
exitDialog.dismiss();
finish()
}
});
而不是你的听众。
另一个(更好的)选择是使用JOptionPane.showConfirmDialog(…);有两个可能的问题 首先,由于
这个
关键字,它正在引用当前的对话框类,因此请给出您的类名。这个
第二,由于
final
关键字,请删除final关键字并在onCreate(Bundle SavedInstances)方法中向侦听器提供您是如何初始化按钮的?建议的方法是:
public void onBackPressed() {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage(R.string.dialog_quit)
.setPositiveButton(R.string.confirm, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
finish();
}
})
.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
Dialog dialog = builder.create();
dialog.show();
}
您还可以参考。R.layout.exit_对话框中的“是”按钮在哪里?eclipse无法识别此ActionListener…无法导入它或其他任何内容此listener是用于Swing的,而不是Android。
public void onBackPressed() {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage(R.string.dialog_quit)
.setPositiveButton(R.string.confirm, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
finish();
}
})
.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
Dialog dialog = builder.create();
dialog.show();
}