我有AlertDialog
我在其中设置XML
作为其视图。在那xml layout
我有一个EditText
。但是在EditText
中输入数据后,如果我尝试使用退格键删除,则字符不会被删除(它的退格键不起作用)。
我错过了什么吗?我搜索但没有得到任何适当的解决方案,除了添加keylistener。我认为它应该简单吗?
任何人都可以帮助我。
这是我的EditText
<EditText
android:id="@+id/TextBox"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="text">
<requestFocus />
</EditText>
对话框代码:
hintDialog = new AlertDialog.Builder(activity)
.setTitle("Enter Your Hint:")
.setView(hintDialogView).create();
hintDialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK)
hintDialog.dismiss();
return true;
}
});
答案 0 :(得分:10)
你有没有设置onKeyListeners?这可能是问题的原因。
试试这个:
hintDialog = new AlertDialog.Builder(activity)
.setTitle("Enter Your Hint:")
.setView(hintDialogView).create();
hintDialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK)
hintDialog.dismiss();
return true;
}
return false;
});
(添加返回false;)
答案 1 :(得分:1)
你有KeyEvent.KEYCODE_BACK监听器吗? 被叫处理关键事件。您可以覆盖它以在将所有键事件分派到窗口之前拦截它们。请务必为应该正常处理的关键事件调用此实现。 当你重写dispatchKeyEvent方法时,你必须在返回时调用super.dispatchKeyEvent(event)。
答案 2 :(得分:0)
不应该是KEYCODE_BACK而是KEYCODE_DEL。它确实适用于你的情况。