我想将浮动操作按钮用作某种收藏夹按钮,即书签功能。我正在使用boolean
,初始化如下:
boolean favSelected = false;
并且我的活动将从SQLite数据库中检索一些信息,以确定
favSelected
是true还是false。如果是真的,我希望我的晶圆厂使用不同的颜色,如果是假的,则使用原始颜色。我尝试了这个: fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(favSelected = false) {
favSelected = true;
fab.setBackgroundTintList(new ColorStateList(new int[][]{new int[]{0}}, new int[]{getResources().getColor(R.color.header_pressed)}));
} else if ( favSelected = true){
favSelected = false;
fab.setBackgroundTintList(new ColorStateList(new int[][]{new int[]{0}}, new int[]{getResources().getColor(R.color.colorPrimary)}));
}
}
});
但这没用。预期的功能有点像复选框
最佳答案
您正在使用if(favSelected = false)
这是favSelected的分配,请像(favSelected == false)
一样使用。
为了进行比较,我们使用==
符号代替=
所以像这样修改你的代码
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public void onClick(View view) {
if (!favSelected) {
favSelected = true;
view.setBackgroundTintList(new ColorStateList(new int[][]
{new int[]{0}}, new int[]{getResources().getColor(R.color.colorAccent)}));
} else if (favSelected) {
favSelected = false;
view.setBackgroundTintList(new ColorStateList(new int[][]{new int[]{0}}, new int[]{getResources().getColor(R.color.colorPrimary)}));
}
}
});