Как скрыть программную клавиатуру для одного из EditText, когда программная клавиатура уже показана? - PullRequest
0 голосов
/ 05 сентября 2011

Здесь ситуация: я показываю экран с 4 полями ввода, 2 из которых необходимо редактировать пользователем (числовое поле), другое (текстовое поле) - показывает некоторую текстовую информацию, которую пользователь может изменить через ListView, но он закрыт для ручного редактирования. Я использую в своем XML-файле android:editable="false" для нечисловых полей EditText, и это помогает отключить всплывающее окно программной клавиатуры, когда пользователь нажимает на поле. Но проблема в том, что когда пользователь редактирует числовое поле, клавиатура не прячется после того, как пользователь сфокусировался на текстовом поле.

Так как же скрыть уже показанную программную клавиатуру, когда пользователь сфокусировался на моем текстовом поле?

Методы, такие как:

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(MEdit1.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);

или что-то вроде этого

MetricEdit = (EditText) findViewById(R.id.MetricEdit);
MetricEdit.setInputType(0); 

не действует.

Заранее спасибо за ваше время.

Ответы [ 2 ]

2 голосов
/ 05 сентября 2011

попробуйте поставить

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(MEdit1.getWindowToken(), 0);

в onclicklistener для редактируемого текста, редактируемого

Вы также можете изменить цифровую клавиатуру редактирования текста, чтобы в нижней части было написано «Готово»:

android:imeOptions="actionDone"

в xml для текста редактирования

0 голосов
/ 10 мая 2013

Это поможет ..

edittext.setInputType(InputType.TYPE_NULL);      
if (android.os.Build.VERSION.SDK_INT >= 11)   
{  
    edittext.setRawInputType(InputType.TYPE_CLASS_TEXT);  
    edittext.setTextIsSelectable(true);  
}
...