首页 文章

在ListView中的LongClick上创建可编辑的EditText

提问于
浏览
0

我正在尝试在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 回答

  • 1

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

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

相关问题