2015-01-12 4 views
0

Мне нужно захватить, когда ввод usario вводится в автозаполнении текстового вида под названием textOrigem. Ниже мой код, я отлаживаю, и он приходит, когда я нажимаю любую клавишу, чтобы не вводить. Текстовое представление автозаполнения имеет свойство android:clickable = "true", но по-прежнему не вводит метод, если я набираю номер.Метод OnKeyDown не срабатывает, когда я нажимаю enter

textOrigem.setKeyListener(new KeyListener() { 

     @Override 
     public boolean onKeyUp(View view, Editable text, int keyCode, KeyEvent event) { 
      // TODO Auto-generated method stub 
      return false; 
     } 

     @Override 
     public boolean onKeyOther(View view, Editable text, KeyEvent event) { 
      // TODO Auto-generated method stub 
      return false; 
     } 

     @Override 
     public boolean onKeyDown(View view, Editable text, int keyCode, 
       KeyEvent event) { 
      if (keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_DOWN) { 
       Log.d("Key", "enter_key_called"); 
      } 
      return false; 
     } 

     @Override 
     public int getInputType() { 
      // TODO Auto-generated method stub 
      return 0; 
     } 

     @Override 
     public void clearMetaKeyState(View view, Editable content, int states) { 
      // TODO Auto-generated method stub 

     } 
    }); 
+0

Попробуйте войти код ключа. Возможно, это нечто иное, чем то, что вы ожидаете. – nasch

ответ

0

Возможно, попробуйте TeextView.OnEitorActionListener? Переопределите onEditorAction и в нем переключитесь на View.getId, если у вас мало текстовых просмотров.

0

Я не слишком хорошо знаком с установкой ключевых слушателей в Android, но принимая быстрый взгляд на документе я заметил this немного для getInputType:

Возврата типа текста, что этот ключ слушатель манипулирует, по типу InputType. Это используется для определения режима мягкой клавиатуры, который отображается для редактора. Если вы вернете TYPE_NULL, тогда никакая мягкая клавиатура не будет предоставлена. Другими словами, вы должны предоставить свою собственную клавиатуру для ввода на экране, а прослушиватель клавиш будет использоваться для обработки ввода с жесткой клавиатуры.

Моя догадка no soft keyboard will be provided взята буквально, что может объяснить, почему журнал не уволен. Если вы не добавляете журналы другим методам, чтобы узнать, срабатывает ли кто-либо из других.

Стараясь сделать это:

@Override 
    public int getInputType() { 
     // TODO Auto-generated method stub 
     return TYPE_CLASS_TEXT; 
    } 
Смежные вопросы