2013-02-12 27 views
6

我遇到了requestFocus的问题。EditText requestFocus()?

首先,这是我的源代码:

<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" /> 

正如你看到的,重点必须去etGLNum1,但它总是去etGLNum2。

我已经尝试从我的java文件中添加etGLNum1.requestFocus();,但它没有奏效。

我该怎么办?

谢谢:)

回答

0

只需添加XML所有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

仍然没有工作:( – 2013-02-14 05:25:33

2

Edittext添加requestFocus

<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

仍然没有工作:( – 2013-02-14 05:27:12

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

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



     } 
     } 
    }); 
0

在你onCreate()写:

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

与我所经历的,安卓有焦点移到当前面找到的第一个聚焦元素AA默认行为(如果我们没有设置任何默认元素可调焦)。
可以使用etGLNum1.setFocusable(true)(之前的setContentView()调用),然后etGLNum1.requestFocus()(之后的setContentView()调用)从您的onCreate()..
它应该工作..