我想检查来自服务器的布尔值。如果布尔值为true,我想禁用按钮单击。否则,可以单击按钮。我使用Retrofit将所有数据从服务器添加到 rest 。
@ api
"bookmarked": true
@ Restaurant Object
private boolean bookmarked;
public boolean isBookmarked() {
return bookmarked;
}
public void setBookmarked(boolean bookmarked) {
this.bookmarked = bookmarked;
}
@ onCreate()
Restaurant rest;
Button btn;
@Override
public void success(Restaurant restaurant, Response response) {
rest = restaurant;
}
if (rest.isBookmarked()) {
btn.setOnClickListener(null);
}
答案 0 :(得分:3)
不要根据标志更改点击监听器;相反,请致电setEnabled(boolean)
:
btn.setEnabled(!rest.isBookmarked());
我不太了解标有" @ onCreate()&#34 ;;的代码块的结构。你似乎有任何方法之外的代码,它不会编译。因此,我无法为上述代码行建议一个特定的位置。但是,我的猜测是,正确的地方是success()
方法。 (此外,在假设您拥有有效的Restaurant
对象之前,您应该检查响应状态。)