2010-06-25 19 views
18

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).

+0

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) –

risposta

35

Soluzione:

Usa setFocusableInTouchMode e setFocusable, entrambi.

+0

Grazie, questo ha funzionato per me – TheRealKingK

+0

Grazie. - Questo è stato un grande aiuto! ( – HeavyE

+1

Wow, questo mi ha salvato dal debug della maratona –

Problemi correlati