Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我应该如何过滤带有字符串的腐蚀性复选框_Android_Listview_Filter_Android Arrayadapter - Fatal编程技术网

Android 我应该如何过滤带有字符串的腐蚀性复选框

Android 我应该如何过滤带有字符串的腐蚀性复选框,android,listview,filter,android-arrayadapter,Android,Listview,Filter,Android Arrayadapter,只有与每个项目关联的字符串值被过滤掉,但与之关联的复选框保持不变 例如。假设我有3个联系人“A”、“B”和“C”。当我打开此ListActivity并选择“A”时。现在,当我搜索联系人“C”(在搜索框中输入“C”)时,联系人会被过滤掉,我可以在顶部看到联系人“C”。但是,这表明它已被选中。事实上,它不是……因为与“C”关联的复选框从未短路……而当前与“C”关联的复选框似乎是触点“A” 我应该怎么做才能使过滤同步 m、 png我也遇到了这个问题,通过使用我自己的自定义适配器扩展ArrayAdapt

只有与每个项目关联的字符串值被过滤掉,但与之关联的复选框保持不变

例如。假设我有3个联系人“A”、“B”和“C”。当我打开此ListActivity并选择“A”时。现在,当我搜索联系人“C”(在搜索框中输入“C”)时,联系人会被过滤掉,我可以在顶部看到联系人“C”。但是,这表明它已被选中。事实上,它不是……因为与“C”关联的复选框从未短路……而当前与“C”关联的复选框似乎是触点“A”

我应该怎么做才能使过滤同步


m、 png

我也遇到了这个问题,通过使用我自己的自定义适配器扩展
ArrayAdapter
并覆盖
getView
,我根据未筛选列表将每个视图设置为选中/未选中,从而解决了这个问题

这是我的getView代码:

search.addTextChangedListener(new TextWatcher() {

    public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {

                adapter.getFilter().filter(arg0);

            }
 }

我还让MyClass实现了
onClickListener
,以切换单击的MyObject的选定状态,并调用
myAdapter.notifyDataSetChanged()

我也遇到了这个问题,通过使用我自己的自定义适配器扩展
ArrayAdapter
并覆盖
getView
,我根据未筛选列表将每个视图设置为选中/未选中,从而解决了这个问题

这是我的getView代码:

search.addTextChangedListener(new TextWatcher() {

    public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {

                adapter.getFilter().filter(arg0);

            }
 }

我还让MyClass实现了
onClickListener
,以切换单击的MyObject的选定状态,并调用
myAdapter.notifyDataSetChanged()

您可以尝试制作自己的自定义适配器来帮助您。看看这是否有帮助:@AJcodez感谢您的回复……甚至我也在考虑使用自定义适配器来完成此操作……是的,您所描述的内容听起来似乎不应该发生。是否可以为每个项目制作自己的布局?它应该通过筛选从列表中删除整个项目。再次感谢。。。。。我会查一查的。。现在正在处理应用程序的另一部分…稍后将返回…并且可能需要您的帮助:-)您可以尝试制作自己的自定义适配器来帮助您。看看这是否有帮助:@AJcodez感谢您的回复……甚至我也在考虑使用自定义适配器来完成此操作……是的,您所描述的内容听起来似乎不应该发生。是否可以为每个项目制作自己的布局?它应该通过筛选从列表中删除整个项目。再次感谢。。。。。我会查一查的。。现在正在处理应用程序的另一部分…稍后将返回…可能需要您的帮助:-)
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {

            CheckBox view = (CheckBox) super.getView(position, convertView, parent);

            MyObject object = getItem(position);

            view.setChecked(object.selected);
            view.setOnClickListener(MyClass.this);

            return view;
        }