EditText无法获得焦点

时间:2014-01-17 00:01:06

标签: android android-layout

我有一个带有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代码的解决方案?

1 个答案:

答案 0 :(得分:0)

尝试以编程方式进行聚焦,如下所示:

- 将此方法复制到您的活动中:

public void setEditTextFocus(boolean isFocused){
    yourEditText.setCursorVisible(isFocused);
    yourEditText.setFocusable(isFocused);
    yourEditText.setFocusableInTouchMode(isFocused);
    if (isFocused){
        yourEditText.requestFocus();
    }
}

- 并在你的onCreate:

setEditTextFocus(true);