2012-03-19 2 views
2

Есть ли способ программно сказать Android для открытия клавиатуры, когда фокус получен с помощью EditText?Как мое приложение Android может программно отображать клавиатуру

Также есть ли способ сказать, чтобы открыть цифровую клавиатуру?

Благодаря Виктор

+0

возможно дубликат [Open мягкой клавиатуры программно] (http://stackoverflow.com/questions/5593053/open-soft-keyboard-programmatically) – Vincent

ответ

4

Чтобы показать клавиатуры :

InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
inputMethodManager.showSoftInput(viewToEdit, 0); 

Чтобы скрыть клавиатура:

if (getCurrentFocus() != null) { 
    inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getApplicationWindowToken(), 0); 
} 
+0

Это работает в целом, однако я не упомянул, что мой EditText находится в диалоговом окне, и как только я открываю диалог, клавиатура скрывается. Если я сначала открою диалог, клавиатура не покажет - какие-нибудь идеи? –

5

, чтобы сделать его числовым, используйте этот

text.setInputType(InputType.TYPE_CLASS_NUMBER); 

и насколько я знаю, клавиатура появится при необходимости автоматически

8

Чтобы выскочить цифровой клавиатуры на старте деятельности вы можете выполнить следующие действия:

Созданный редактировать текстовое поле в макет как: (Не необходимо, если вы хотите QWERTY клавиатура)

<EditText 
     ... 
     android:inputType="number"  
     ... /> 

в функции OnCreate() шоу экранная клавиатура

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0); 

Самое главное, чтобы передать фокус редактировать текст в onResume методом.

@Override 
    public void onResume() { 
     super.onResume(); 
     editText.setFocusableInTouchMode(true); 
     editText.requestFocus(); 
    } 
+0

Я пробовал этот код. Когда активность загружается, я вижу фокус на EditText, но я не вижу цифровую клавиатуру, пока не нажму на EditText. Я что-то упускаю. – j10

+0

EditText возьмет фокус, но вы должны заставить клавиатуру подняться. Вы можете написать эту часть в onCreate(). –

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