我正在尝试在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项目上。
答案 0 :(得分:1)
但是没有成功 - 长时间点击后,editText将无法编辑 我也不能长时间点击editText区域,但只能在listview上 项目
在行XML布局中,您应将除EditText之外的所有项目设置为focusable:false
。这将允许EditText接收长按事件。