2016-03-22 13 views
0

I Radiogruppe in der Navigationsansicht der Schublade Layout wie dieseGet ausgewählte Radiobutton-ID in Navigationsansicht platziert

<android.support.design.widget.NavigationView 
    app:headerLayout="@layout/header" 
    app:menu="@menu/drawer"> 

<RadioGroup> 
     <RadioButton/> 
     <RadioButton/> 
</RadioGroup> 

    </android.support.design.widget.NavigationView> 

Ich möchte das ausgewählte Optionsfeld Text oder id genommen zu bekommen, aber ich bin immer nicht Protokolle oder Toast und auch keine Fehler ..

-Code für das erhalten ausgewählten Radiobutton:

rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 
     @Override 
     public void onCheckedChanged(RadioGroup group, int checkedId) { 
      int pos=rg.indexOfChild(findViewById(checkedId)); 
      Toast.makeText(MainActivity.this, "ID = "+String.valueOf(pos), 
        Toast.LENGTH_SHORT).show(); 
      Log.e("",""+pos); 
     } 

ich weiß, dass ich diese Ansicht, indem Sie benutzerdefinierte Liste erreichen kann .. Aber wie diese Funktion erhalten ..

+0

einen Tag ein Optionsfeld festgelegt, dann den Tag in dem obigen Code erhält Position gemäß bedeutet radiobutton1.setTag (1) und radioButton2.setTag (2) in rg. setOnCheckedChangeListener nur setzen wenn Bedingung (radiobutton1.getTag == 1) {// mach das Zeug} else {// mach ein anderes Zeug}; –

Antwort

0

Sorry konnte nicht im Kommentar antworten. Versuchen Sie folgendes:

navigationView.getMenu().findItem(R.id.radioButtonId); 

dies zurückkehren Id Ihrer RadioButton.

Edit:

Können Sie so etwas tun:

RadioButton radio = (RadioButton)navigationView.findViewById(R.id.radioButtonId); 
+0

Warum .getMenu()? Radio-Gruppe ist nicht im Menü .. – Bee

+0

Können Sie etwas tun wie folgt: RadioButton Radio = (RadioButton) navigationView.findViewById (R.id.radioButtonId); –

0

Beispiel - nur in developer.android

bereitgestellt mag Sie müssen nur Attribut onClick in XML-Datei hinzufügen wie unten

<?xml version="1.0" encoding="utf-8"?> 
<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 
    <RadioButton android:id="@+id/radio_pirates" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/pirates" 
     android:onClick="onRadioButtonClicked"/> 
    <RadioButton android:id="@+id/radio_ninjas" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/ninjas" 
     android:onClick="onRadioButtonClicked"/> 
</RadioGroup> 

das Ereignisses onClick Griffteil in Code

public void onRadioButtonClicked(View view) { 
    // Is the button now checked? 
    boolean checked = ((RadioButton) view).isChecked(); 

    // Check which radio button was clicked 
    switch(view.getId()) { 
     case R.id.radio_pirates: 
      if (checked) 
       // Pirates are the best 
      break; 
     case R.id.radio_ninjas: 
      if (checked) 
       // Ninjas rule 
      break; 
    } 
} 
+0

Aber wenn ich Log oder Toast schreibe in ** wenn (geprüft) ** Teil bekomme ich nichts .. – Bee

Verwandte Themen