Android: EditText не может получить фокус после повторного включения - PullRequest
20 голосов
/ 25 июня 2010

У меня есть 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 () и пытался установить FocusFeInTouchMode (), но ни один не помог

У меня нет устройства Android, поэтому я проверяю это только в эмуляторе (Min SDK равен 1.6).

1 Ответ

38 голосов
/ 22 января 2011

Временное решение:

Используйте setFocusableInTouchMode и setFocusable, оба из них.

...