繁体   English   中英

CheckedTextView 不会在状态为 false 时删除复选标记图标

[英]CheckedTextView won't remove the checkMark icon when status false

我有一个以CheckedTextViews作为记录的listview ,当点击一个项目时,我可以看到CheckedTextView的状态已经切换,但Checkmark永远不会隐藏。

这是我的 listView 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"替换我的自定义复选标记时,它工作正常。 任何的想法 ?

尝试这个

CheckedTextView ctv = (CheckedTextView) view.findViewById(R.id.filter);
ctv.toggle();

您可以尝试android.R.layout.simple_list_item_multiple_choice声明适配器时的解释在这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM