ListView中的EditText - 更改EditText的焦点

时间:2015-09-04 13:40:12

标签: android listview android-listview

我有一个包含ListView

的视图
<ListView
    android:id="@+id/products_list"
    android:layout_width="match_parent"
    android:descendantFocusability="afterDescendants"
    android:layout_height="0dp"
    android:layout_weight="1" />

每一行都有一些图像,文本和EditText。 我在EditTexts中获得了获得/失去焦点的功能,但是我有问题,当我进入视图,然后单击一些EditText。始终第一次单击任何EditText会将焦点从单击的焦点更改为列表中的第一个。

我对此视图的持有者已实施方法:

    @Override
    public void bindValues(CatalogsProducts item) {
        note.addTextChangedListener(this);
        note.setOnFocusChangeListener(this);
    }


    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if(v instanceof EditText && !hasFocus) {
            if(item != null && !TextUtils.isEmpty(note.getText().toString())) {
                item.setCertainNote(note.getText().toString());
            }
        }
    }

    @Override
    public void afterTextChanged(Editable s) {
        item.setCertainNote(s.toString());
    }

任何想法如何不从第一次点击的EditText中失去焦点?

1 个答案:

答案 0 :(得分:2)

在布局XML中:

<ListView  
    android:id="@+id/products_list"      
    android:layout_height="0dp"
    android:layout_weight="1"
    android:layout_width="fill_parent"
    android:descendantFocusability="beforeDescendants"
    />

在Mainfest.xml中:

<activity android:name= ".yourActivity" android:windowSoftInputMode="adjustPan"/>

希望这能帮到你!!