Java 在对话框的自定义视图中处理后退键
好的,我在对话框中有一个自定义视图,但它的onKeyDown从未被调用。我也尝试了onKeyPreIme,但没有成功,将对话框的setCancelable设置为true也没有帮助 编辑:Java 在对话框的自定义视图中处理后退键,java,android,Java,Android,好的,我在对话框中有一个自定义视图,但它的onKeyDown从未被调用。我也尝试了onKeyPreIme,但没有成功,将对话框的setCancelable设置为true也没有帮助 编辑: //Removed all unnecessary code public class CustomView extends LinearLayout { @Override public boolean onKeyDown (int keyCode, KeyEvent event)
//Removed all unnecessary code
public class CustomView extends LinearLayout
{
@Override
public boolean onKeyDown (int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0)
{
//do stuff here
return true;
}
return super.onKeyDown(keyCode, event);
}
}
public class CustomDialog
{
Dialog dialog;
public class CustomDialog(Context context)
{
dialog = new Dialog(context);
dialog.setContentView(R.layout.test);// the test.xml has CustomView
}
}
将
onKeyDown
逻辑移动到onkeydener
实现中,并将其注册到视图的构造函数中。将onKeyDown
逻辑移动到onkeydener
实现中,并将其注册到视图的构造函数中。为什么不简单使用:
public void onBackPressed() {
//desired functionality here
return;
}
你为什么不直接使用:
public void onBackPressed() {
//desired functionality here
return;
}
您想要的功能是什么?请发一些密码。不清楚你的代码从你的文字中做了什么。你想要的功能是什么?请发一些密码。从您的文字中不清楚您的代码做了什么。如果我没有错,它在活动中工作,而不是在视图中。除此之外,我使用的是Android 1.6,它没有这个事件。否则,按照另一个答案中提到的那样,为你的
onKeyDown
使用onKeyListener
。这是一个库项目,当然它将用于活动。您所说的是一个技巧,每次有人使用库时都会执行。如果我没有错,它在活动中工作,而不是在视图中。除此之外,我使用的是Android 1.6,它没有这个事件。否则,按照另一个答案中提到的那样,为你的onKeyDown
使用onKeyListener
。这是一个库项目,当然它将用于活动。你所说的是一个技巧,每次有人使用这个库时都会这样做。好的,必须使用Dialog的KeyListener,它会被调用。好的,必须使用Dialog的KeyListener,它会被调用。