在ListView中长按可编辑的EditText

时间:2014-04-14 08:52:22

标签: android listview android-listview

我正在尝试在LongView on item上使ListView中的EditText字段可编辑。 我在Stackoverflow上搜索了相同的主题,但没有找到最适合我的情况。

这是来自xml的ListView项目的EditText:

<EditText
android:id="@+id/list_title_parent_item"
style="@style/list_parent_title_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:inputType="textPersonName"
android:focusable="false"
android:background="@android:color/transparent"
android:lines="1" />

首先,它禁止编辑并仅显示文本。但是通过longclick on item,它必须是可编辑的。我试图通过将onitemlonglistener设置为listview来实现它:

private class ListViewOnLongClickListener implements OnItemLongClickListener {

    @Override
    public boolean onItemLongClick(AdapterView<?> parent, View view,
                                   int position, long id) {
        GroupListAdapter adapter = (GroupListAdapter)parent.getAdapter();
        adapter.setTitleEditable();         
        return true;
    }
}

public void setTitleEditable() {
    holder.title.setEnabled(true);
    holder.title.setFocusableInTouchMode(true);
    Log.e("longclick", "!!!");
}

但是没有成功 - 长时间点击后editText将无法编辑,而且我无法长时间点击editText区域,只能在listview项目上。

1 个答案:

答案 0 :(得分:1)

  

但是没有成功 - 长时间点击后,editText将无法编辑   我也不能长时间点击editText区域,但只能在listview上   项目

在行XML布局中,您应将除EditText之外的所有项目设置为focusable:false。这将允许EditText接收长按事件。