【发布时间】:2015-09-08 20:30:16
【问题描述】:
我有一个listview 和CheckedTextViews 作为记录,当单击一个项目时,我可以看到CheckedTextView 的状态已切换,但Checkmark 从未隐藏。
这是我的列表视图的 XML
<ListView
android:id="@+id/listFilters"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingStart="10dp"
android:choiceMode="multipleChoice" />
这是记录的 XML:
<CheckedTextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/filter"
android:layout_width="match_parent"
android:layout_height="60dp"
android:minHeight="60dp"
android:text="filter1"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:gravity="center_vertical"
android:checkMark="@drawable/icon_blue_checkmark" />
这是我的OnItemClick Listener :
@Override
public void onItemClick (AdapterView<?> parent, View view, int position, long id) {
Filter filter = (Filter) adapter.getItem (position);
boolean isSelected = !filter.isSelected ();
filter.setSelected (isSelected);
CheckedTextView ctv = (CheckedTextView)listView.getChildAt (position);
ctv.toggle ();
// shows that the status of the CheckedTextView has switched successfully
Toast.makeText (
getActivity (),
"CheckedTextView status : " + ctv.isChecked (),
Toast.LENGTH_SHORT
).show();
}
我做错了什么?谢谢。
编辑:
我刚刚注意到,当用 android:checkMark="?android:attr/listChoiceIndicatorMultiple" 替换我的自定义复选标记时,它工作正常。有什么想法吗?
【问题讨论】:
-
你确定你的
onItemClick被调用了吗? -
是的,
toast显示成功,CheckedTextView的状态正确 -
@karaokyo :忘记适配器初始化部分,我错了。但是 onClick 问题是正确的。
-
回应您的编辑:
icon_blue_checkmark是什么?
标签: android listview checkedtextview