我正在尝试通过适配器将数据从适配器传递到活动。
我正在检查复选框
checkboxSelectSubCategory.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
productModelsAL.get(getAdapterPosition()).setCategorySelected(true);
}else {
productModelsAL.get(getAdapterPosition()).setCategorySelected(false);
}
}
});
并在调试后正确设置对象中的数据:
Intent intent = new Intent(mContext, SelectProductActivity.class);
Bundle bundle = new Bundle();
bundle.putParcelable("productModel", productModelsAL.get(getAdapterPosition()));
intent.putExtras(bundle);
mContext.startActivity(intent);
但是在活动中,我没有收到传递的布尔值。在活动的onCreate中:
Intent intent = getIntent();
if (intent != null) {
Bundle bundle = intent.getExtras();
if (bundle != null) {
subCategory = (SubCategory) bundle.getParcelable("productModel");
}
}
allProductsSelected = subCategory.isCategorySelected();
为什么我没有得到我要传递的价值?
实际上,我的Model类不正确。
我首先正确地实现了所有的模型类n。
但是为了获得额外的功能,我在模型中加入了checkbox
并创建了setter吸气剂。但是未更新Parcelable
的必需方法。
解决方案:
我删除了Parcelable
的三种自动生成的方法。
并用Alt+Enter
重新创建。
就是这样。
这有点无知,我浪费了很多时间。只是认为这可能对某人有帮助。