Внутри setOnCheckedChangeListener
из viewAvailability
установите AvailabilityStatus
на 1
, когда пользователь проверил chckbox
, в противном случае установите его 0
. как показано ниже.
viewAvailability.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
if (viewAvailability.isChecked()){
//Toast.makeText(context, item.getId() + "is checked", Toast.LENGTH_SHORT).show();
//db.updateItem(new Item(item.getName(),item.getPrice(),1,0));
// db.updateItem(item.getId(),item.getName(),item.getPrice(),1,0);
changeAvailabilty(item.getId(),item.getName(),item.getPrice(),1,1,0);
// here you have to set Availability Status is 1
item.setAvailabilityStatus(1)
} else {
// db.updateItem(new Item(item.getName(),item.getPrice(),0,0));
// db.updateItem(item.getId(),item.getName(),item.getPrice(),0,0);
changeAvailabilty(item.getId(),item.getName(),item.getPrice(),1,0,0);
// here you have to set Availability Status is 0
item.setAvailabilityStatus(0)
}
}
});
}
ОБНОВЛЕНИЕ
В свой класс модели Item
добавьте дополнительное свойство с именем isSelected
с getter
и setter
like
public class Item{
// your other properties
private boolean isSelected;
public boolean getSelected() {
return isSelected;
}
public void setSelected(boolean selected) {
isSelected = selected;
}
}
И в вашем адаптере вы должны установить isSelected
равным true
, если пользователь проверил chekcbox
, иначе установите его как false
внутри вашего setDetails()
. как следующие.
public void setDetails(final Item item) {
db = new DBHelper(context);
viewName.setText(item.getName());
viewPrice.setText(item.getPrice());
viewStock.setText(String.valueOf(item.getStock()));
int as = item.getAvailabilityStatus();
// Here you should check if it is already checked or not
if (item.getSelected) {
viewAvailability.setChecked(true);
}
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Toast.makeText(context, String.valueOf(item.getId()), Toast.LENGTH_SHORT).show();
Bundle dataBundle = new Bundle();
dataBundle.putInt("id",item.getId());
Intent intent = new Intent(context,NewItemActivity.class);
intent.putExtras(dataBundle);
context.startActivity(intent);
}
});
viewAvailability.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
if (viewAvailability.isChecked()){
//Toast.makeText(context, item.getId() + "is checked", Toast.LENGTH_SHORT).show();
//db.updateItem(new Item(item.getName(),item.getPrice(),1,0));
// db.updateItem(item.getId(),item.getName(),item.getPrice(),1,0);
changeAvailabilty(item.getId(),item.getName(),item.getPrice(),1,1,0);
// here you have to set selected true
item.setSelected(true)
} else {
// db.updateItem(new Item(item.getName(),item.getPrice(),0,0));
// db.updateItem(item.getId(),item.getName(),item.getPrice(),0,0);
changeAvailabilty(item.getId(),item.getName(),item.getPrice(),1,0,0);
// here you have to set selected false
item.setSelected(false)
}
}
});
}
Надеюсь, это поможет вам. Счастливое кодирование