Ho un TabHost con tre schede. Il contenuto della prima scheda è lo scopo di un'attività personalizzata che contentview è un layout relativo contenente due EditTexts e due CheckBox (e un pulsante).Android: EditText non può ottenere lo stato attivo dopo essere stato riattivato
Ogni checbox, se selezionato, abilita/disabilita un EditText e l'altra casella di controllo. e sono andato all'incirca in questo modo:
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);
}
}
});
E che funziona. Quando una casella è selezionata, disattiva l'altra casella di spunta e il suo EditText, e quando deseleziono, EditText e l'altra casella di controllo sono abilitati. Ma, dopo che è abilitato, non posso digitare nulla in EditText. Fa un solo colpo per un istante quando I fa clic su di esso e passa a un'altra vista. Mi sembra che il controllo non sia completamente abilitato.
Ho anche cercato di forzare lo stato attivo su EditText riattivato con requestFocus(), e ho provato a impostareFocusableInTouchMode(), ma nessuno dei due aveva funzionato.
Non ho un dispositivo Android, quindi eseguo il test solo nell'emulatore (l'SDK minimo è 1.6).
Nota importante:. Questo comportamento si manifesta solo per il tocco (quando scatto l'EditText, ma funziona normalmente con la sfera di pista (che è il metodo setFocusableInTouchMode perché ho provato) –