来自AppCompatButton参考页:
在布局中使用Button时,将自动使用此选项。编写自定义视图时,您只需手动使用此类。
我正常Button
到AppCompatButton
,因此我可以使用setSupportBackgroundTintList
方法:
AppCompatButton button = (AppCompatButton) findViewById(R.id.normalButton);
button.setSupportBackgroundTintList(ColorStateList.valueOf(tintColor));
它的构建和运行没有任何问题,但Android Studio 1.4在铸造生产线上给了我恼人的红色亮点:
对AppCompatButton的意外转换:布局标记为Button
有什么想法吗?
答案 0 :(得分:3)
它看起来像IDE类型检查中的一个错误 - Button是AppCompatButton的直接祖先,因此转换为AppCompatButton应该没问题。我相信你可以安全地称之为:
Button button = (Button) findViewById(R.id.normalButton);
((AppCompatButton)button).setSupportBackgroundTintList(ColorStateList.valueOf(tintColor));
或更好
((TintableBackgroundView)button).setSupportBackgroundTintList(ColorStateList.valueOf(tintColor));
如果你使用Butterknife,一切都按预期工作,没有任何警告:
@Bind(R.id.normalButton)
AppCompatButton button;