我只想通过文本的值更改按钮的背景颜色。例如,当我将文本更改为:
时button.setText("YES");
我想将按钮的背景颜色设置为 绿色 。 当我将文字改为:
button.setText("NO");
我想将按钮的背景颜色设置为 红色 。
当我在java代码中更改它时:
boolean textValueYES = true;
button.setBackgroundColor(textValueYES ? Color.GREEN : Color.RED);
该按钮丢失了其drawable.xml设置。 有没有办法将此检查添加到drawable xml? 或者按文本值设置背景颜色而不会丢失可绘制设置?
答案 0 :(得分:4)
您可以为红色和绿色背景颜色创建两个可绘制的xml,并以编程方式设置该xml。
button.setBackgroundResource(textValueYES ? R.drawable.green : R.drawable.red);
答案 1 :(得分:3)
你必须这样做,只需写下setText()
即
button.setText("YES");
setBackgroundResource(R.color.green);
以及何时
button.setText("NO");
setBackgroundResource(R.color.red);
答案 2 :(得分:1)
我在我的java文件中喜欢这个
final Button btn_showtouch = (Button)findViewById(R.id.button);
btn_showtouch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if((btn_showtouch.getText()).equals("YES")) {
btn_showtouch.setBackgroundColor(Color.GREEN);
btn_showtouch.setText("NO");
}else if(btn_showtouch.getText().equals("NO")) {
btn_showtouch.setBackgroundColor(Color.CYAN);
btn_showtouch.setText("YES");
}
}
});
}
和你的XML文件一样
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="YES"
android:id="@+id/button"
android:layout_below="@+id/textView"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="62dp" />
它对我有用,我希望这会对你有所帮助