为什么dialog显示的时候,返回键的定义不起作用啊????
public void showDiologFaile() {Builder b = new AlertDialog.Builder(this);
b.setTitle("title");
b.setMessage("message?");
b.setPositiveButton("是", new DialogInte易做图ce.OnClickListener() {
@Override
public void onClick(DialogInte易做图ce dialog, int which) {
// TODO Auto-generated method stub
d.mICount = findTimer;
d.fail = false;
// dialog.dismiss();
dialogRun = false;
//finish();
}
});
b.setNegativeButton("否", new DialogInte易做图ce.OnClickListener() {
@Override
public void onClick(DialogInte易做图ce dialog, int which) {
// TODO Auto-generated method stub
finish();
}
});
b.create().show();
b.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(DialogInte易做图ce dialog, int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if(keyCode == KeyEvent.KEYCODE_BACK) {
dialog.dismiss();
finish();
return true;
}
return false;
}
});
} --------------------编程问答-------------------- 楼主试试
把b.create().show();
拉到事件定义后面来
还不行的话
试试把事件绑在.create()的返回对象上
然后再那个对象.show()
--------------------编程问答-------------------- 这句 b.setOnKeyListener(new OnKeyListener()
放在 b.create().show(); 之上即可 --------------------编程问答-------------------- 另外 一个建议
if改为
if(event.getAction()==KeyEvent.ACTION_DOWN&&keyCode == KeyEvent.KEYCODE_BACK){
}
不然会执行2次onkey,一次down,一次up --------------------编程问答-------------------- 我也遇到过lz这个问题,其实当dialog在前端的时候,你的焦点位于dialog界面,而不是activity界面,所以你在Activity里定义的onKeyDown()方法是不起作用的。
补充:移动开发 , Android