当复选框使用 setEnable(true) 时更改 .setTextColor 的颜色
Changing the color of the .setTextColor when the checkbox is using setEnable(true)
有些问题我自己解决不了。
我目前正在为我的训练制作一个简单的 android 应用程序,它使用多个复选框。
我想做的就是如标题所说,当条件为setEnabled(true)时改变checkbox文本的颜色。
我搜索了 google 但找不到解决方案。我在下面添加了我正在使用的示例代码。曾经,我是菜鸟,专业人士的帮助对我来说意义重大。
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
if (isChecked) {
buttonView.setTextColor(Color.GREEN);
buttonClicked.add(buttonView.getText()
.toString());
buttonView.setTextSize(18);
count += 1;
Log.d("TAG","is checked = "+isChecked);
if (count >= 7) {
for (int i = 0; i < checkbox.length; i++) {
String item = Integer.toString(i+1);
if (buttonClicked.indexOf(item)>-1) {
checkbox[i].setEnabled(true);
Log.d("TAG",i+" = 2is checked = "+isChecked);
// buttonView.setTextColor(Color.YELLOW);
} else {
Log.d("TAG",i+" = 3is checked = "+isChecked);
checkbox[i].setEnabled(false);
// buttonView.setTextColor(Color.RED);
}
}
}
} else {
if (count <= 7) {
for (int i = 0; i < checkbox.length; i++) {
checkbox[i].setEnabled(true);
// buttonView.setTextColor(Color.BLACK);
}
}
count--;
buttonClicked.remove(buttonView.getText()
.toString());
buttonView.setTextSize(15);
}
您可以按如下方式更改复选框的文本颜色,
yourCheckBox.setTextColor(Color.GREEN);
创建选择器 xml 并将其放入
/res/color/text_my_checked.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:color="#00ff00"/>
<item android:color="#000000"/> <!-- anything else -->
</selector>
并像这样在布局文件中使用它
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Check"
android:textColor="@color/text_my_checked"
android:checked="true" />
这是一个选项:
checkboxbutton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Checkbox b = (CheckBox)v;
if (b.isChecked()) {
//your code
b.setTextColor(Color.GREEN);
}
else
//your code
b.setTextColor(Color.BLACK);
}
});
此外,您还可以选择 color.xml 文件中定义的颜色
b.setTextColor(getResources().getColor(R.color.blue));
有些问题我自己解决不了。 我目前正在为我的训练制作一个简单的 android 应用程序,它使用多个复选框。
我想做的就是如标题所说,当条件为setEnabled(true)时改变checkbox文本的颜色。 我搜索了 google 但找不到解决方案。我在下面添加了我正在使用的示例代码。曾经,我是菜鸟,专业人士的帮助对我来说意义重大。
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
if (isChecked) {
buttonView.setTextColor(Color.GREEN);
buttonClicked.add(buttonView.getText()
.toString());
buttonView.setTextSize(18);
count += 1;
Log.d("TAG","is checked = "+isChecked);
if (count >= 7) {
for (int i = 0; i < checkbox.length; i++) {
String item = Integer.toString(i+1);
if (buttonClicked.indexOf(item)>-1) {
checkbox[i].setEnabled(true);
Log.d("TAG",i+" = 2is checked = "+isChecked);
// buttonView.setTextColor(Color.YELLOW);
} else {
Log.d("TAG",i+" = 3is checked = "+isChecked);
checkbox[i].setEnabled(false);
// buttonView.setTextColor(Color.RED);
}
}
}
} else {
if (count <= 7) {
for (int i = 0; i < checkbox.length; i++) {
checkbox[i].setEnabled(true);
// buttonView.setTextColor(Color.BLACK);
}
}
count--;
buttonClicked.remove(buttonView.getText()
.toString());
buttonView.setTextSize(15);
}
您可以按如下方式更改复选框的文本颜色,
yourCheckBox.setTextColor(Color.GREEN);
创建选择器 xml 并将其放入 /res/color/text_my_checked.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:color="#00ff00"/>
<item android:color="#000000"/> <!-- anything else -->
</selector>
并像这样在布局文件中使用它
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Check"
android:textColor="@color/text_my_checked"
android:checked="true" />
这是一个选项:
checkboxbutton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Checkbox b = (CheckBox)v;
if (b.isChecked()) {
//your code
b.setTextColor(Color.GREEN);
}
else
//your code
b.setTextColor(Color.BLACK);
}
});
此外,您还可以选择 color.xml 文件中定义的颜色
b.setTextColor(getResources().getColor(R.color.blue));