2013-09-26 12 views
6

L'impostazione predefinita Android Switch dispone di testo e quindi Switch on/off. Mi aspetto Switch on/off e poi il testo. Non utilizzare altri widget come TextView. Come posso impostare il testo del lato destro Switch.Come cambiare Passa il testo a destra in Android?

+0

Usa l'attributo xml come android: textOn e android: textOff nel tuo xml. –

+1

@JiteshDalsaniya l'interruttore predefinito ha il testo dell'interruttore sul lato sinistro e l'interruttore sul lato destro. Mi aspetto interruttore sul lato sinistro e cambio di testo sul lato destro. Puoi cancellare ora? cosa ci si aspetta –

risposta

-2

sono stato in grado di ottenere l'aspetto che volevo con una combinazione di:

  • larghezza (120dp)

  • imbottitura (75dp)

  • e switchpadding (-90dp)

enter image description here

8

enter image description here

avvolgerla in un altro layout senza alcun valore di testo e aggiungere un TextView. vedi il mio codice:

<LinearLayout 
     android:layout_width="match_parent" 
     android:orientation="horizontal" 
     android:paddingTop="10dp" 
     android:paddingBottom="10dp" 
     android:layout_height="wrap_content"> 
      <Switch 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:id="@+id/reminder" /> 
      <TextView 
       android:layout_width="wrap_content" 
       android:text="Meeting Reminders" 
       android:layout_height="wrap_content" /> 
    </LinearLayout> 
+1

Funziona alla grande, ma come implementare quando si fa clic su 'Promemoria riunione 'per cambiare il controllo' Switch', Senza codice logico nell'attività? Ad esempio 'for =" @ id/promemoria "' – mihkov

2

Aggiungere questo codice su file XML:

  <Switch 
       android:id="@+id/simpleSwitch" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentEnd="true" 
       android:layout_alignParentRight="true" 

       android:layout_marginEnd="15dp" 
       android:layout_marginRight="15dp" 
       android:layout_marginTop="5dp" 
       android:checked="false" 
       android:textColor="@color/black" 
       android:textOff="@string/no" 
       android:textOn="@string/yes" 
       android:theme="@style/SCBSwitch" /> 

      <TextView 
       android:id="@+id/switchBtn_txtView" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginEnd="5dp" 
       android:layout_marginRight="5dp" 
       android:layout_marginTop="10dp" 
       android:layout_toLeftOf="@+id/simpleSwitch" 
       android:gravity="center_horizontal" /> 

Nell'attività o un frammento:

Switch simpleSwitchBtn = (Switch) findViewById(R.id.simpleSwitch); 
     final TextView switchBtn_txtView = (TextView) findViewById(R.id.switchBtn_txtView); 


     simpleSwitchBtn.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
      @Override 
      public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
       if(isChecked){ 
        switchBtn_txtView.setText("Yes"); 
       } 
       else { 
        switchBtn_txtView.setText("No"); 
       } 
      } 
     }); 

Penso che sia utile a voi .... Grazie

Problemi correlati