我有一个带有Textview的RelativeLayout和几个EditText,最后是一个带有两个EditText的LinearLayout。当我运行应用程序并按下Next键时,键盘焦点正常,从一个EditText到另一个。但是,当焦点位于LinearLayout的第一个EditText时,焦点不会移动到另一个EditText。
请帮助
这是我的布局文件:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp">
<TextView
android:id="@+id/txt_nombre"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/lbl_nombre" />
<EditText
android:id="@+id/edi_nombre"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="textCapWords"
android:layout_below="@id/txt_nombre" />
<TextView
android:id="@+id/txt_apellido"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/lbl_apellido"
android:layout_below="@id/edi_nombre" />
<EditText
android:id="@+id/edi_apellido"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="textCapWords"
android:layout_below="@id/txt_apellido" />
<TextView
android:id="@+id/txt_username"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/lbl_username"
android:layout_below="@id/edi_apellido" />
<EditText
android:id="@+id/edi_username"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="textCapWords"
android:layout_below="@id/txt_username" />
<TextView
android:id="@+id/txt_email"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/lbl_email"
android:layout_below="@id/edi_username" />
<EditText
android:id="@+id/edi_email"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="textEmailAddress"
android:layout_below="@id/txt_email" />
<LinearLayout
android:id="@+id/lyo_pwd"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/edi_email"
android:focusableInTouchMode="false"
android:orientation="horizontal" >
<TextView
android:id="@+id/txt_pwd"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/lbl_pwd"
android:layout_weight="1" />
<TextView
android:id="@+id/txt_repwd"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/lbl_repwd"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:id="@+id/lyo_edipwd"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/lyo_pwd"
android:orientation="horizontal"
android:padding="2dp" >
<EditText
android:id="@+id/edi_pwd"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="text"
android:imeOptions="actionNext"
android:layout_weight="1" />
<EditText
android:id="@+id/edi_repwd"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="text"
android:imeOptions="actionNext"
android:layout_weight="1"/>
</LinearLayout>
<Button
android:id="@+id/btn_registrar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/btn_registrar"
android:layout_below="@id/lyo_edipwd" />
</RelativeLayout>
有没有使用java代码的解决方案?
答案 0 :(得分:0)
尝试以编程方式进行聚焦,如下所示:
- 将此方法复制到您的活动中:
public void setEditTextFocus(boolean isFocused){
yourEditText.setCursorVisible(isFocused);
yourEditText.setFocusable(isFocused);
yourEditText.setFocusableInTouchMode(isFocused);
if (isFocused){
yourEditText.requestFocus();
}
}
- 并在你的onCreate:
setEditTextFocus(true);