Java “如何设置开关”;setOnCheckedChangeListener";在查看卡中
下面是我的RecycleView的图片: 我需要在recycleView卡上设置Java “如何设置开关”;setOnCheckedChangeListener";在查看卡中,java,android,android-recyclerview,Java,Android,Android Recyclerview,下面是我的RecycleView的图片: 我需要在recycleView卡上设置setOnCheckedChangeListener()开关。 我试图在适配器的bindView中添加侦听器 但是适配器中的对象是null 适配器类 public class CardsSyrFastAdapter extends AbstractItem<CardsSyrFastAdapter, CardsSyrFastAdapter.ViewHolder> { private Card ob
setOnCheckedChangeListener()
开关。
我试图在适配器的bindView中添加侦听器
但是适配器中的对象是null
适配器类
public class CardsSyrFastAdapter extends AbstractItem<CardsSyrFastAdapter, CardsSyrFastAdapter.ViewHolder> {
private Card object;
public CardsSyrFastAdapter(Card object) {
setObject(object);
}
public CardsSyrFastAdapter() {
}
@Override
public ViewHolder getViewHolder(View v) {
return new ViewHolder(v);
}
@Override
public int getType() {
return 0;
}
//The unique ID for this type of item
//The layout to be used for this type of item
@Override
public int getLayoutRes() {
return R.layout.card_list_card;
}
//The logic to bind your data to the view
@Override
public void bindView(ViewHolder viewHolder, List payloads) {
//call super so the selection is already handled for you
super.bindView(viewHolder, payloads);
//bind our data
viewHolder.cardName.setText(getObject().getCardName());
viewHolder.baqaSize.setText(getObject().getCardSize() + "");
viewHolder.baqaUnit.setText(getObject().getCardUnit());
viewHolder.default_card_switch.setChecked(getObject().isDefult());
viewHolder.default_card_switch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
Card card = getObject(); //When the call is null
}
});
}
public Card getObject() {
return object;
}
public void setObject(Card object) {
this.object = object;
}
//The viewHolder used for this item. This viewHolder is always reused by the RecyclerView so scrolling is blazing fast
protected class ViewHolder extends RecyclerView.ViewHolder {
TextView cardName;
TextView baqaSize;
TextView baqaUnit;
Switch default_card_switch;
public ViewHolder(View view) {
super(view);
cardName = view.findViewById(R.id.CardListName);
baqaSize = view.findViewById(R.id.baqasize);
baqaUnit = view.findViewById(R.id.baqaunit);
default_card_switch = view.findViewById(R.id.default_card_switch);
}
}
}
公共类CardsSyrFastAdapter扩展了AbstractItem{
私人卡对象;
公共卡SyrFastAdapter(卡对象){
setObject(object);
}
公共卡SyrFastAdapter(){
}
@凌驾
公共视图持有者getViewHolder(视图v){
返回新的视图持有者(v);
}
@凌驾
公共int getType(){
返回0;
}
//此类型项目的唯一ID
//用于此类型项的布局
@凌驾
公共int getLayoutRes(){
返回R.layout.card\u list\u card;
}
//将数据绑定到视图的逻辑
@凌驾
public void bindView(视图持有者、视图持有者、列表有效载荷){
//调用super,以便已为您处理选择
super.bindView(视图持有者、有效载荷);
//绑定我们的数据
viewHolder.cardName.setText(getObject().getCardName());
viewHolder.baqaSize.setText(getObject().getCardSize()+);
viewHolder.baqaUnit.setText(getObject().getCardUnit());
viewHolder.default_card_switch.setChecked(getObject().isdovidet());
viewHolder.default_card_switch.setOnCheckedChangeListener(新建CompoundButton.OnCheckedChangeListener()){
@凌驾
检查更改后的公共无效(复合按钮视图,布尔值已检查){
Card Card=getObject();//调用为空时
}
});
}
公共卡getObject(){
返回对象;
}
公共作废设置对象(卡片对象){
this.object=对象;
}
//用于此项目的viewHolder。此viewHolder始终由RecyclerView重复使用,因此滚动速度非常快
受保护的类ViewHolder扩展了RecyclerView.ViewHolder{
TextView卡名;
文本视图大小;
TextView-baqaUnit;
开关默认\u卡\u开关;
公共视图持有者(视图){
超级(视图);
cardName=view.findviewbyd(R.id.CardListName);
baqaSize=view.findviewbyd(R.id.baqaSize);
baqaUnit=view.findViewById(R.id.baqaUnit);
default\u card\u开关=view.findviewbyd(R.id.default\u card\u开关);
}
}
}
请在出现错误的地方发布代码我编辑了问题并输入了适配器代码,错误出现在onCheckedChanged()中,get对象返回空对象请在出现错误的地方发布代码我编辑了问题并输入了适配器代码,错误出现在onCheckedChanged()中,get对象返回空对象