2015-03-20 5 views
-1

Я разрабатываю мягкую клавиатуру для Android, и я хочу, чтобы ключ «DONE» (KEYCODE_DONE) был изменен на «поиск, следующий "в соответствии с параметрами EditText ime. Как я могу это достичь?Изменить метку «Готово» на моей программной клавиатуре на «Поиск, Далее» в соответствии с параметрами EditText ime

+0

[Здесь] (http://stackoverflow.com/questions/2568637/how-to-disable-next-button-on-a-edittext-software-keyboard-replace-with-done) является вашим ответ. – Harry

+0

Я разрабатываю мягкую клавиатуру. Я не создаю приложение, содержащее EditText. – myatmins

ответ

0

Наконец, я нашел его. Создайте класс, который расширяет Keyboard и добавляет следующий метод и вызывает его из класса InputMethodService.

@Override 
protected Key createKeyFromXml(Resources res, Row parent, int x, int y, XmlResourceParser parser) { 
    Key key = new Key(res, parent, x, y, parser); 
    if (key.codes[0] == -4) { 
     mEnterKey = key; 
    } 
    return key; 
} 

private Key mEnterKey; 
void setImeOptions(Resources res, int options) { 
    if (mEnterKey == null) { 
     return; 
    } 

    switch (options & (EditorInfo.IME_MASK_ACTION | EditorInfo.IME_FLAG_NO_ENTER_ACTION)) { 
     case EditorInfo.IME_ACTION_GO: 
      mEnterKey.iconPreview = null; 
      mEnterKey.icon = null; 
      mEnterKey.label = "Go"; 
      break; 
     case EditorInfo.IME_ACTION_NEXT: 
      mEnterKey.iconPreview = null; 
      mEnterKey.icon = null; 
      mEnterKey.label = "Next"; 
      break; 
     case EditorInfo.IME_ACTION_SEARCH: 
      mEnterKey.icon = null; 
      mEnterKey.iconPreview = null; 
      mEnterKey.label = "Search"; 
      break; 
     case EditorInfo.IME_ACTION_SEND: 
      mEnterKey.iconPreview = null; 
      mEnterKey.icon = null; 
      mEnterKey.label = "Send"; 
      break; 
     default: 
      mEnterKey.icon = null; 
      mEnterKey.iconPreview = null; 
      mEnterKey.label = "Return"; 
      break; 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^