2012-08-15 23 views

Antwort

-2

Verwenden Sie einfach setBackgroundColor;)

Update: Auch hier ist eine gute Wahl ist. Standard Android Button with a different color

p.s. Warum geben Sie Downvote für Hilfe?

+12

-1 Weil setBackgroundColor den Hintergrund der Schaltfläche und nicht die Ein/Aus-Farbe des ToggleButtons ändern würde, was gefragt wurde. – you786

20

erstellen xml namens Colors.xml in res/Werte Ordner:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <color name="red">#ff0000</color> 
    <color name="green">#00ff00</color> 
</resources> 

In ziehbar Ordner, eine XML-Datei my_btn_toggle.xml erstellen:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_checked="false" android:drawable="@color/red" /> 
    <item android:state_checked="true" android:drawable="@color/green" /> 
</selector> 

und in XML-Abschnitt definieren Sie Ihre Toggle Button:

<ToggleButton 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="New ToggleButton" 
    android:id="@+id/toggleButton" 
    android:background="@drawable/my_btn_toggle"/> 
+2

Dies ergibt kein sehr gutes Ergebnis, da es die rechteckige Form der Standardschaltfläche übersteuert. –

+1

Dies ändert die gesamte Schaltfläche auf grün/rot. Nicht die Highlight-Farbe. –

+0

Diese Lösung funktioniert nicht bei den neuesten Themen. –

2
ToggleButton Btn=new ToggleButton(this);// or get it from the layout by ToggleButton Btn=(ToggleButton) findViewById(R.id.IDofButton); 
     Btn.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 

      public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
       // TODO Auto-generated method stub 
       if(isChecked) 
        buttonView.setBackgroundColor(Color.GREEN); 
       else buttonView.setBackgroundColor(Color.RED); 
      } 
     }); 
Verwandte Themen