2013-02-12 9 views
6

Ich habe ein Problem mit requestFocus.EditText requestFocus()?

Erstens, dies ist mein Quellcode:

<EditText 
    android:id="@+id/etGLNum2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_centerVertical="true" 
    android:layout_toLeftOf="@+id/btGLCalculate" 
    android:ems="10" 
    android:hint="@string/gl_num2_hint" 
    android:inputType="number" /> 

<EditText 
    android:id="@+id/etGLNum1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/etGLNum2" 
    android:layout_alignParentLeft="true" 
    android:layout_toLeftOf="@+id/btGLCalculate" 
    android:ems="10" 
    android:hint="@string/gl_num1_hint" 
    android:inputType="number"> 

    <requestFocus /> 
</EditText> 

<TextView 
    android:id="@+id/tvGLResult" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_below="@+id/etGLNum2" 
    android:gravity="center" 
    android:text="@string/result" 
    android:textAppearance="?android:attr/textAppearanceMedium" /> 

<Button 
    android:id="@+id/btGLCalculate" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/tvGLResult" 
    android:layout_alignParentRight="true" 
    android:layout_alignTop="@+id/etGLNum1" 
    android:text="@string/calculate" /> 

Wie Sie sehen, Fokus auf etGLNum1 gehen, aber es geht immer zu etGLNum2.

Ich habe bereits versucht etGLNum1.requestFocus(); von meiner Java-Datei hinzufügen, aber es hat nicht funktioniert.

Was soll ich tun?

Thanks :)

Antwort

0

xml nur hinzufügen alle editexts:

<EditText 
    android:id="@+id/editText1" 
    android:layout_width="0dip" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:ems="10" 
    android:hint="@string/gl_num2_hint" 
    android:inputType="number" > 
    <requestFocus /> 
</EditText> 
+0

noch nicht :( –

2

hinzufügen requestFocus in Ihrem Edittext.

<EditText 
    android:id="@+id/etGLNum2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_centerVertical="true" 
    android:layout_toLeftOf="@+id/btGLCalculate" 
    android:ems="10" 
    android:hint="@string/gl_num2_hint" 
    android:inputType="number"> 
    <requestFocus /> 
</EditText> 
+2

arbeiten immer noch nicht :( –

1
try this :- 
etGLNum2.setOnFocusChangeListener(new OnFocusChangeListener() {  
     @Override 
     public void onFocusChange(View rv, boolean hasFocus) { 

         etGLNum2.clearFocus(); 
        etGLNum1.requestFocus(); 



     } 
     } 
    }); 
0

In Ihrem onCreate() schreiben:

EditText etGLNum1 = (EditText)findViewById(R.id.etGLNum1); 
etGLNum1.requestFocus(); 
etGLNum1.setOnFocusChangeListener(new OnFocusChangeListener() { 

    @Override 
    public void onFocusChange(View v, boolean hasFocus) 
    { 
     //enter code here 
    } 
}); 
0

Mit dem, was ich erlebt habe ist, Android haben aa Standardverhalten in der aktuellen Oberfläche gefunden Fokus auf das erste fokussierbare Element des Gebens (wenn wir habe kein Standardelement auf fokussierbar gesetzt).
können Sie verwenden etGLNum1.setFocusable(true) (vor setContentView() -Aufruf), dann etGLNum1.requestFocus() (nach setContentView() Aufruf) von Ihrem onCreate() ..
Es sollte funktionieren ..