当数据库标题等于“读取”时,我想禁用该按钮。 我的代码可以正常工作,但是会发生这种情况:
我需要禁用AlreadyRead按钮,而不必转到首页,怎么办?
我的代码:
public class BookData extends AppCompatActivity {
private ArrayList<Book> books = new ArrayList<>();
ImageView img;
Button currently ,wantToRead, AlreadyRead, AddFavorites;
TextView title,des;
Book desierdBook;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_all_books);
initViews();
Intent i = getIntent();
desierdBook =(Book) i.getSerializableExtra("obj");
setData(desierdBook);
}
private void setData(Book book) {
if(book.getState().equals("Read")){
this.AlreadyRead.setEnabled(false);
}
title.setText(book.getTitle());
des.setText(book.getDes());
Picasso.get().load(book.getImg()).into(img);
}
}
答案 0 :(得分:0)
在我看来,您不是在数据库中“存储”该书的“已读”状态,但是我不确定,因为我看不到您的代码中单击“ AlreadyRead”时会发生什么
当您序列化一个对象并将其反序列化时,它会创建该对象的新副本,因此您无法指望Book副本会保持该状态,无论通过Intent发送给活动的对象是什么。
请确保在单击按钮时将“读取”状态保存到数据库中。