Android可过滤的Recyclerview带复选框

时间:2017-07-10 10:06:57

标签: android android-layout search checkbox android-recyclerview

我正在开发一个应用程序,其中RecyclerView带有复选框和搜索视图。对于从编辑文本中搜索,我添加了

enter image description here

search.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }

            @Override
            public void afterTextChanged(Editable s) {

            }
        });

并在afterTextChanged()我正在更改列表并致电notifydatasetChanged()

但搜索后复选框的状态会丢失。有没有办法让复选框保持状态?

2 个答案:

答案 0 :(得分:1)

是的,您可以创建ArrayList并保存该阵列中的所有选定项目。在通知列表之后,你可以检查id`s,如果它(包含)在该数组列表中可用,那么你将使用setChecked(true)检查该复选框;

例如:

#import "PersonInfo.h"

@implementation RTAObject


-(id)init:(FIRDataSnapshot *)snapshot {

     _pName = [snapshot valueForKey:@"name"];
     _pNumber = [snapshot valueForKey:@"number"];
     _pEmail = [snapshot valueForKey:@"email"];

     return self;
}

-(id) init:(NSString *)pName:(NSString *)pNumber :(NSString *)pEmail 
{

    _pName = pName;
    _pNumber = pNumber;
    _pEmail = pEmail;

    return self; 
}
@end

答案 1 :(得分:0)

首先使用适配器中的false值创建布尔数组。如果用户检查数组,则将数组的位置设为true,然后取消选中将其设为false。稍后总是设置该布尔数组的复选框值。

有关详情,请参阅此

http://android-pratap.blogspot.in/2015/01/recyclerview-with-checkbox-example.html

Onscroll selected checkbox getting unchecked using listiview