2016-03-22 17 views
0

Я принял группу радио в навигационном макете ящика, как этотвыбрано радио кнопка ID помещается в навигационном

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

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

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

Я хочу, чтобы получить выделенный текст или идентификатор кнопки радио, но я не получаю какой-либо журналы или Toast и без ошибок тоже ..

код для получения выбранной кнопки радио:

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

Я знаю, что могу добиться этого с помощью настраиваемого представления списка .. Но как получить эту работу ..

+0

установить тег к кнопке радио затем получить метку в приведенном выше коде в соответствии с положением, означает radiobutton1.setTag (1) и (2 radioButton2.setTag) в rg. setOnCheckedChangeListener просто положить if condition (radiobutton1.getTag == 1) {// сделать материал} else {// сделать другой материал}; –

ответ

0

Извините, не смог ответить в комментарии. Попробуйте это:

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

это вернет идентификатор вашего RadioButton.

Edit:

Можете ли вы сделать что-то вроде этого:

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

почему .getMenu()? Группа радио не находится в меню. – Bee

+0

Можете ли вы сделать что-то вроде этого: RadioButton radio = (RadioButton) navigationView.findViewById (R.id.radioButtonId); –

0

Пример - как представленную в developer.android

Вам просто нужно добавить атрибут OnClick в XML-файле как указано ниже

<?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> 

обрабатывать событие OnClick в кодовой части

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

Но если я пишу журнал или тост в ** если (отмечен) ** часть, я ничего не получаю .. – Bee

 Смежные вопросы

  • Нет связанных вопросов^_^