2010-11-18 9 views
7

Sto riscontrando qualche problema con la messa a fuoco del controllo. La mia definizione di interfaccia sotto ha:requestFocus skipping next EditText

fonte (RadioGroup/opzionale) destinazione (EditText) quantità (EditText) trasferimento (Button)

sto cambiando la visibilità della "fonte" nel mio codice. Quando non lo visualizzo, la messa a fuoco passa automaticamente alla "quantità" che invece mi aspetterei da "destinazione". Non so cosa mi sfugge. Sospetto che potrebbe trattarsi di un bug di Android, non lo so. Qualcuno sa come risolvere questo?

Grazie

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <RadioGroup android:id="@+id/source" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:visibility="gone"> 
    <RadioButton android:id="@+id/default" 
    android:checked="false" 
    android:text="@string/default"/> 
</RadioGroup> 

<TableLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:stretchColumns="1"> 
    <TableRow> 
    <TextView 
    android:text="@string/destination" 
    android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="16sp" 
     android:textColor="#ffffff" 
     android:paddingRight="10sp" 
     android:layout_weight="1"/> 

     <EditText android:id="@+id/destination" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:singleLine="true"><requestFocus/></EditText> 
    </TableRow> 

    <TableRow> 
    <TextView 
    android:text="@string/quantity" 
    android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="16sp" 
     android:textColor="#ffffff" 
     android:paddingRight="10sp" 
     android:layout_weight="1"/> 

     <EditText android:id="@+id/quantity" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:singleLine="true"/> 
    </TableRow> 
</TableLayout> 

<Button android:id="@+id/transfer" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/transfer"/> 
</LinearLayout> 
+0

Sto testando questo su Android 2.2 e non posso riprodurre, l'attenzione è su Destinazione all'inizio. Se continui ad avere problemi ti consiglio di aggiungere 'EditText e = (EditText) findViewById (R.id.destination); e.requestFocus(); 'nel tuo metodo' onResume'. –

+0

Grazie per la risposta. Sì, ma sto testando su Android 2.1. requestFocus() non ha potuto risolvere il problema. – pocoa

+0

Vedere la mia risposta nell'argomento: http://stackoverflow.com/a/13194129/348192 – iBog

risposta

8

Sembra essere un problema noto. Il seguente post su google code per il progetto Android descrive lo stesso problema.

Issue 2705: Setting requestFocus on EditText prevents soft keyboard from opening

Si potrebbe provare a impostare attenzione nel codice invece che nel layout.

+0

Grazie per il collegamento. Sì, ho provato a utilizzare destination.requestFocus() ma non ha funzionato. – pocoa

+7

Grazie. this.post (new Runnable() { public void run() { text.requestFocus(); } }); problema risolto. – pocoa

2

Da linea documentation:

Una visione non avrà effettivamente messa a fuoco se non è attivabile (isFocusable() restituisce false), o se è attivabile e non è attivabile in modalità touch (isFocusableInTouchMode ()) mentre il dispositivo è in modalità touch.

1

Utilizzare il metodo requestFocus()EditText. :)

2

Ho affrontato lo stesso numero, Prova questo codice che ha funzionato per me.

   editText.post(new Runnable() { 
       public void run() { 
         editText.requestFocus(); 
            } 
              }); 
+0

la mia vista non viene evidenziata quando si utilizza il metodo di messa a fuoco. Ho provato anche questo, ma inutile – AndroidOptimist

Problemi correlati