错误的EditText在ListView中获得焦点

时间:2015-05-19 07:20:46

标签: android listview android-listview android-edittext

我在ListView中有EditText。单击下一个焦点时,第一个项目焦点丢失,下一个按钮变为新线条按钮。在其他项目上,一切都可以正常运作。

我的列表行布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="@dimen/field_row_height">

    <EditText
        android:id="@+id/field"
        style="@style/EditText.Form.Field"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:paddingLeft="@dimen/double_default_padding"/>

    <Button
        android:id="@+id/required"
        style="@style/Button.Gray"
        android:layout_width="@dimen/required_button_width"
        android:layout_height="@dimen/required_button_height"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:layout_marginRight="@dimen/default_padding"
        android:gravity="center"
        android:padding="0dp"
        android:text="@string/form_field_required"
        android:textColor="@color/white"/>

before after

4 个答案:

答案 0 :(得分:1)

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="@dimen/field_row_height">

        <EditText
            android:id="@+id/field"
            style="@style/EditText.Form.Field"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:paddingLeft="@dimen/double_default_padding">
    <requestFocus />
    </EditText>
        <Button
            android:id="@+id/required"
            style="@style/Button.Gray"
            android:layout_width="@dimen/required_button_width"
            android:layout_height="@dimen/required_button_height"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:layout_marginRight="@dimen/default_padding"
            android:gravity="center"
            android:padding="0dp"
            android:text="@string/form_field_required"
            android:textColor="@color/white"/>




listView.setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS); android:windowSoftInputMode="adjustPan"          in your activity or android:descendantFocusability="beforeDescendants"

答案 1 :(得分:0)

试试这个

<EditText
        android:id="@+id/field"
        style="@style/EditText.Form.Field"
        android:layout_width="match_parent"
        android:focusable="true"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:paddingLeft="@dimen/double_default_padding"/>
你忘了这个

android:focusable="true"

答案 2 :(得分:0)

如果您在视图获得打开时请求焦点请求焦点获取焦点。

<EditText
            android:id="@+id/field"
            style="@style/EditText.Form.Field"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:paddingLeft="@dimen/double_default_padding">
    <requestFocus />
    </EditText>

答案 3 :(得分:0)

解决方案:

listView.setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS);