我希望能够动态更改fab的徽标“这将是我最喜欢的按钮”。当我单击它时,徽标应在1到另一个之间切换(如打开和关闭)。
例如,当您单击它时,星星变成黄色。
这是模拟器的屏幕截图,我的鼠标位于Fab上,并且在右屏幕上,我位于onclicklistener上,具有2个我希望可以动态更改的可绘制对象
答案 0 :(得分:2)
我相信SimpleCoder的解决方案是合适的。另一种选择是,如果您要减少一个布尔值(但视图中隐藏了另一个业务规则),则可以使用任何tag
的{{1}}属性来存储内容。
伪代码:
View
您并没有节省太多的内存,也不一定要更清楚(我坚持这个“决定”(if (mFavoriteFab.tag == null) {
mFavoriteFab.tag = "" // no longer null
// set drawable 1
} else {
mFavoriteFab.tag = null
// set drawable 1
}
)不属于您的Activity / Fragment / View代码,但是对于这样简单,您就可以摆脱任何类似的方法。
答案 1 :(得分:1)
在任何方法外写下面。
boolean isClicked = false;
内部点击监听器代码
{
isClicked = !isClicked;
if(isClicked)
mFavoriteFab.setImageResource(R.drawable.liked);
else
mFavoriteFab.setImageResource(R.drawable.unliked);
}