Android Edittext有退格键问题

时间:2012-07-30 06:44:37

标签: android android-edittext backspace

我有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;
      }
    });

3 个答案:

答案 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。它确实适用于你的情况。