我正在编写一个只有一个按钮的程序。开始时,按钮为默认颜色;当点击按钮时,背景颜色变成红色,然后再次点击,其背景颜色变成默认颜色。任何关于在myButton.setOnClickListener(new OnClickListener(){}
方法中编写代码的建议?由于将按钮背景颜色设置为Android SDK中的默认颜色
1
A
回答
1
// Class member variable
private Drawable defaultDrawable;
myButton.setOnClickListener(new OnClickListener()
{
if(defaultDrawable == null)
{
defaultDrawable = myButton.getDrawable();
myButton.setBackgroundColor(Color.BLUE);
}
else
{
myButton.setBackgroundDrawable(defaultDrawable);
defaultDrawable=null;
}
}
您绝对可以改进逻辑以提高可读性。
你也可以简单地使用ToggleButton,它有两种状态。每个状态都有自己的背景可绘制/颜色,您可以在xml文件中指定。不需要听众。
0
你可以做简单:
boolean isSelected = false;
int color1 = R.color.mycolor1;
int color2 = R.color.mycolor2;
myButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if(isSelected){
btn.setBackgroundColor(color1);
} else {
btn.setBackgroundColor(color2);
}
isSelected = !isSelected;
}
});
另一种解决方案是扩展Button类,存储您isSelected标志作为一个成员类。通过这种方式,您可以在需要的地方重复使用这种按钮。
+0
我只是想重新设置为默认的颜色 – DavidNg
0
您可以从您的当前主题的R.attr.buttonStyle像这样得到的颜色:
public static int getAttrResId(Context context, int attrId) {
TypedValue outValue = new TypedValue();
context.getTheme().resolveAttribute(attrId, outValue, true);
return outValue.resourceId;
}
相关问题
- 1. 带悬浮颜色和按颜色的wpf按钮,如何将它们的默认值设置为背景
- 2. 将默认颜色设置为Android库
- 3. $。将背景颜色设置为当前设置的颜色
- 4. 设置背景颜色改变按钮
- 5. Eclipse如何将按钮背景颜色更改为默认值
- 6. 为uibutton背景图像设置渐变颜色(颜色)iphone sdk
- 7. wxPython中按钮的背景颜色为默认
- 8. 将背景颜色设置为色调颜色
- 9. 确定Android按钮背景的默认颜色
- 10. 如何将按钮的颜色更改为其默认颜色
- 11. hotcocoa按钮背景颜色
- 12. 按钮背景颜色
- 13. 将gridview背景颜色设置为datatable的颜色?
- 14. 默认按钮颜色
- 15. 将背景颜色设置为DotNet.Highcharts
- 16. 将背景颜色设置为页面
- 17. 如何在Android中按下按钮时将背景设置为随机颜色?
- 18. Android应用背景颜色按钮
- 19. 将Android按钮重置为默认颜色和样式
- 20. iPhone设置背景条按钮的色调颜色
- 21. Angular4背景颜色设置
- 22. 设置VIM背景颜色
- 23. 设置背景颜色toolbaritems
- 24. 设置背景颜色CMDIFrameWnd
- 25. 设置行背景颜色
- 26. 设置背景颜色
- 27. 如何设置Android按钮的背景颜色?
- 28. android:将Tab的点击颜色设置为TableRow的背景颜色
- 29. 更改按钮颜色作为背景颜色更改?
- 30. 更改默认的UITabBarController背景颜色
事实上,我作出了多项选择题测验。每个选择都是一个按钮。我想在转移到下一个问题时将所有按钮的颜色更改为其默认颜色 – DavidNg