2013-12-16 19 views
6

Ich erstelle ein RadioGroup mit RadioButton s dynamisch und muss ein Optionsfeld standardmäßig aktiviert haben.Standard-Kontrollkästchen aktiviert Optionsfeld

ich dies habe beides getan, indem Sie radioButton.setChecked(true) und radioButton.toggle();

Das Problem ist, dass ich, wenn ich zur Laufzeit wählen Sie eine anderes Optionsfeld der ersten so am Ende geprüft bleibt ich mit zwei Radio-Buttons im Radio überprüft Gruppe.

Hat jemand dieses Problem gehabt und weiß, wie man es löst?

private RadioButton addRadioButton(String type, String price){ 
     RadioButton radio = new RadioButton(Order.this); 
     radio.setText(type + " (" + Utils.formatCurrency(price) + ")"); 
     radio.setTextAppearance(Order.this, R.style.portalCellTextStyle); 
     radio.setTextSize(TypedValue.COMPLEX_UNIT_SP, 10); 
     radio.setTag(price); 

     if(type.toLowerCase().equals("m")) 
      radio.toggle(); 

     return radio; 
    } 
+0

Sind Sie sicher, dass Sie Radiobutton hinzufügen Radiogroup zu korrigieren? – ridvanzoro

Antwort

1

Wenn Sie nur eine Radio-Box zum Ein- und Ausschalten verwenden, sollten Sie stattdessen das Kontrollkästchen oder die Umschalttaste verwenden.

http://developer.android.com/resources/tutorials/views/hello-formstuff.html

Scroll down und Kontrollkästchen sehen und Taste verwenden.

Wenn Sie Radios verwenden, haben Sie normalerweise mehr als eins und wählen zwischen ihnen. Wie leicht, mittel, schwer.

ersetzen

radio.toggle(); 

mit

radio.setChecked(true); 
+0

Ich habe beide ausprobiert und sie beide überprüfen den Knopf, aber der Knopf bleibt immer noch aktiviert, wenn ich einen anderen prüfe, – thehindutimes

+0

fügst du sie in einzelne RadioGroup ein.? – SilentKiller

0

Sie es in Radiogruppe überprüfen sollten ...

radiogroup.check(IdOfYourButton) 
0

die clearCheck() Funktion verwenden, die bereits geprüft Tasten zu löschen. Ich hoffe, das löst dein Problem.

0

Es stellte sich heraus, weil ich die checked() -Methode auf der Radio-Gruppe direkt nach dem Setzen der OnCheckedChangeListener() aufgerufen, so dass es sofort aufgerufen werden und werfen Sie eine NPE aus irgendeinem Grund.

Der Aufruf der checked() -Methode wurde direkt vor dem OnCheckedChangeListener() verschoben und es funktioniert jetzt.

radios.check(2); 
radios.setOnCheckedChangeListener(new OnCheckedChangeListener() { 
       @Override 
       public void onCheckedChanged(RadioGroup group, int checkedId) { 

       } 
      }); 

private RadioButton addRadioButton(String type, String price){ 
     RadioButton radio = new RadioButton(Order.this); 
     radio.setText(type + " (" + Utils.formatCurrency(price) + ")"); 
     radio.setTextAppearance(Order.this, R.style.portalCellTextStyle); 
     radio.setTextSize(TypedValue.COMPLEX_UNIT_SP, 10); 
     radio.setTag(price); 

     if(type.toLowerCase().equals("m")) 
      radio.setId(2); 

     return radio; 
    } 
1

Sie können dies einfach tun:

JAVA:

radiogroup =(RadioGroup)findViewById(R.id.radiogroup); 
    radiobutton1 =(RadioButton)findViewById(R.id.radiobutton1); 
    radiobutton2 =(RadioButton)findViewById(R.id.radiobutton2); 

    if(your first assessment){ 
     radiobutton1.setChecked(true); 
    }else{ 
     radiobutton2.setChecked(true); 
    } 

XML:

<RadioGroup 
     android:id="@+id/radiogroup" 
     android:orientation="horizontal" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"> 

     <RadioButton 
     android:id="@+id/radiobutton1" 
     android:checked="true" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

     <RadioButton 
     android:id="@+id/radiobutton2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

    </RadioGroup> 
7

Ich weiß, ich bin spät dran, aber für diejenigen, die für die Antwort zu suchen, wie mir kann das nützlich sein.

Wenn Sie RadioButton- zu einem Radiogroup hinzufügen, müssen Sie die Taste, nachdem sie auf das übergeordnete geprüft gesetzt Zugabe wie:

RadioGroup radioGroup = new RadioGroup(getContext()) 
RadioButton radioButton = new RadioButton(getContext()); 
radioButton.setText("text"); 
mRadioGroup.addView(radioButton); 
radioButton.setChecked(true); 

Wenn die Ansicht vor Zugabe zu dem übergeordneten aktiviert ist, wird es unmöglich sein, Deaktivieren Sie es.

+0

Ich hatte vor kurzem dasselbe Problem. Danke, es hat geholfen. –

2

Einfach, zum ersten Mal laden der Bildschirm die Position des In Getview Methode überprüfen und dann Bedingung gelten:

if (position == 0) { 
    holder.act_delivery_rbtn.setChecked(true); 
} 
Verwandte Themen