下面是将开关添加到表格布局的代码。当开关触摸时,它变为红色。我需要它是绿色的。
我已经尝试过将所有颜色改为绿色而没有成功。
Switch sw1 = new Switch(this);
sw1.setTag(i);
if (switchonoff.get(i).equals("true"))
{
sw1.setChecked(true);
}
else
{
sw1.setChecked(false);
}
sw1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
System.out.println("____Switch State: isChecked: " + isChecked + " " + buttonView.getTag() );
Integer tmpint = (Integer)buttonView.getTag();
if (isChecked)
{
switchonoff.set(tmpint, "true");
}
else
{
switchonoff.set(tmpint, "false");
}
for (int i=0; i<mnumberofrows; i++ )
{
System.out.println("________Switch State: isChecked " + i + " " + switchonoff.get(i));
}
}
});
答案 0 :(得分:21)
开关的颜色取决于应用的主题或风格。您需要创建自定义样式并将其应用于您的交换机。随着
使用以下
编辑values \ styles.xmlSELECT *
FROM gallery_images
WHERE trim(image_colors)= 'green'
现在我们只需要将它应用于交换机。
<style name="SwitchTheme" parent="Theme.AppCompat.Light">
<item name="android:colorControlActivated">#148E13</item>
</style>
然后我们留下以下内容:
<强>之前强>
<强>后强>
答案 1 :(得分:1)
此答案将帮助那些将使用 SwitchMaterial
而不是 Switch
这是XML SwitchMaterial
的示例。设置自定义主题,如xml的最后一行所示
<com.google.android.material.switchmaterial.SwitchMaterial
android:id="@+id/switchLocks"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/filter_lock_title"
android:theme="@style/FilterSwitchThemeGreen" />
在您的values/styles.xml
中为开关添加样式。
<style name="FilterSwitchThemeGreen" parent="AppTheme">
<item name="colorAccent">#00FF00</item>
</style>
答案 2 :(得分:0)
另一种方法,更改背景颜色:
setBackgroundColor(android.graphics.Color.GREEN);
为:
holper.aSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked){
buttonView.setBackgroundColor(android.graphics.Color.GREEN);
}
}