2016-09-13 4 views
3

以下は、テーブルレイアウトにスイッチを追加するコードです。スイッチがタッチされると、赤色に変わります。私はそれが緑色である必要があります。Android SWITCH。オンカラーを緑色に変更する方法

オン色を緑色に変更するためにすべてを試しましたが、成功しませんでした。

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)); 
         } 
        } 
       }); 

答えて

12

スイッチの色は、アプリのテーマやスタイルによって決まります。カスタムスタイルを作成してスイッチに適用する必要があります。

<style name="SwitchTheme" parent="Theme.AppCompat.Light"> 
    <item name="android:colorControlActivated">#148E13</item> 
</style> 

次と

編集値\のstyles.xmlと今、私たちはちょうどスイッチにそれを適用する必要があります。

<Switch 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="New Switch" 
    android:id="@+id/switch1" 
    android:theme="@style/SwitchTheme" <--- Important line 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="78dp" /> 

その後、我々は次のように残されています。

enter image description here

enter image description here

+0

おかげでプログラム的に解決することができました。 – user6804473

+0

Preematerial APIのRecyclerViewではテーマ属性が機能しません。 – box

+0

@ user6804473どのようにプログラムで解決しましたか? – JerabekJakub

関連する問題