Android: EditText не может получить фокус после повторного включения
У меня есть TabHost с тремя вкладками. Содержимое первой вкладки - это Намерение пользовательского действия, представлением содержимого которого является относительный макет, содержащий два элемента EditTexts и два флажка (и кнопку).
Каждый флажок, когда отмечен, включает / отключает один EditText и другой флажок. и я пошел примерно так:
chkPolaziste.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
if ( isChecked )
{
entryPolaziste.setFocusable(false);
entryPolaziste.setEnabled(false);
chkOdrediste.setFocusable(false);
chkOdrediste.setEnabled(false);
}
else
{
entryPolaziste.setEnabled(true);
entryPolaziste.setFocusable(true);
chkOdrediste.setEnabled(true);
chkOdrediste.setFocusable(true);
}
}
});
И это работает. Когда один флажок установлен, он отключает другой флажок и его EditText, а когда я снимаю флажок, EditText и другой флажок включены. Но после того, как он включен, я не могу ничего напечатать в EditText. Когда я щелкаю по нему, он щелкает моментом и переключает фокус на другой вид. Мне кажется, что управление не полностью включено.
Я также пытался перевести фокус на вновь включенный EditText с помощью requestFocus() и пытался установить функцию FocusFlindInTouchMode(), но ни одна из них не сработала.
У меня нет устройства Android, поэтому я проверяю это только в эмуляторе (Min SDK равен 1.6).
1 ответ
Временное решение:
использование setFocusableInTouchMode
а также setFocusable
, оба из них.