【发布时间】:2018-01-14 20:14:31
【问题描述】:
TL;DR:您从 (a) 我的列表视图中选择一个选项。然后,您改变主意并在 (b) 我的编辑文本中输入一些内容。如何清除您的列表视图选择并仅显示您的编辑文本? (反之亦然)
我有一个带有选项列表视图的应用程序以及用于创建自己的选项的编辑文本。我需要用户选择或创建一个选项,但不能同时选择两者。这是我的布局图:
每当用户从列表视图中选择一个选项时,我将其设置为“已选择”,将其设为绿色,如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_selected="true"
android:drawable="@color/colorPrimary"/>
<item
android:state_selected="false"
android:drawable="@color/windowBackground" />
</selector>
(这被设置为我的列表视图的背景)
问题:如果用户决定输入自己的选项,我想取消选择列表视图选项,因为他们只能有一个选项。
- 用户从列表视图中选择一个选项
- 用户决定要使用编辑文本创建自己的选项
- 当他们开始输入自己的内容时,未选择列表视图选项
我尝试过following,但没有任何取消选择。
e.setOnEditorActionListener(new TextView.OnEditorActionListener()
{
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
for(int i=0; i<=5; i++){
listView.setItemChecked(i, false);
}
listView.clearChoices();
listView.requestLayout()
adapter.notifyDataSetChanged()
}
}
一个非常令人费解的困境,感谢任何帮助!
编辑:这里是编辑文本的布局:
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textView4"
android:layout_alignBottom="@+id/textView4"
android:layout_toEndOf="@+id/textView4"
android:layout_toRightOf="@+id/textView4"
android:color="@color/colorPrimary"
android:imeOptions="actionDone"
android:inputType="text"
android:textColor="@color/textColorPrimary"
android:textColorHint="@color/colorPrimary" />
编辑:这是列表视图的布局:
<ListView
android:id="@+id/listview"
android:layout_width="wrap_content"
android:layout_height="250dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/toolbar"
android:background="@drawable/bg_key"
android:choiceMode="singleChoice"
android:listSelector="@color/colorPrimary">
</ListView>
【问题讨论】:
-
e是TextView吗?你会怎么输入呢? -
不,e 是编辑文本@Napster
-
您能展示一下您的
EditText布局吗?你也调试看看这个监听器是否被调用? -
@Napster 监听器肯定被调用了,我已经编辑了我的问题以添加
EditText布局 -
您使用的是自定义布局还是标准
ArrayAdapter?
标签: java android android-listview android-xml