我正在开发一个应用程序,其中RecyclerView
带有复选框和搜索视图。对于从编辑文本中搜索,我添加了
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()
但搜索后复选框的状态会丢失。有没有办法让复选框保持状态?
答案 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