我正在尝试实现一个在用户按下按钮时弹出的对话框。这当前有效,但是我在弹出窗口中包含的按钮没有响应。我尝试了以下代码来尝试解决问题。
public void showDialog()
{
final Dialog dialog= new Dialog(context);
dialog.setContentView(R.layout.dialog_info);
infoView=(EditText) dialog.findViewById(R.id.infoView);
infoView.setFocusable(false);
infoView.setText("");
dialog.setTitle(aList.get(count).toTitle());
infoView.append(aList.get(count).toDescription());
Button back=(Button)findViewById(R.id.back);
Button reminder=(Button)findViewById(R.id.reminder);
Log.e(TAG,"Testing click 1.5");
back.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
Log.e(TAG,"Testing click 2");
dialog.dismiss();
}
});
dialog.show();
}
在按下第一个视图中的按钮(后退)后调用showDialog()
public void onClick(View v) {
for (count =0;count<aList.size();count++)
{
if (v==buttons.get(count))
{
Log.e(TAG,"Testing click -1.1");
showDialog();
}
}
}
答案 0 :(得分:0)
如果我理解错了,请纠正我,
您的按钮返回和提醒是对话框的一部分,因此您应该获得空指针异常。尝试找到像这样的按钮
Button back=(Button)dialog.findViewById(R.id.back);
Button reminder=(Button)dialog.findViewById(R.id.reminder);
编辑:通过执行此操作,您将在对话框中找到按钮。如果你不这样做,android会尝试在Activity本身而不是对话框中找到按钮。
对于覆盖问题,请重新检查您是否已正确导入。 (View.onClickListner有两种导入我现在不记得他们的名字。)你可以删除与View.Onclick相关的导入,并尝试重新导入正确的包。
如果情况并非如此,那么我可能会误解你的问题。您可以检查Java合规性级别,看看它是否在1.6上。您可以通过转到Java Compliance Level
下的项目属性来检查这一点答案 1 :(得分:0)
您使用的是哪个版本的Java?
右键单击您的项目 转到“属性” 转到Java Compiler 启用项目特定设置 选择1.6 for Java compliance level
这将修复@Override错误。如果您想使用其他版本,则可以删除所有@Override注释。