2016-03-22 48 views
0

我在抽屜佈局是這樣獲取選定的單選按鈕標識放置在導航視圖

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

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

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

我想選擇的單選按鈕的文字或標識的導航視圖採取單選按鈕組,但我沒有得到任何日誌或麪包和沒有錯誤也..

代碼獲取選定的單選按鈕:

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)和radioButton2.setTag(2 )在rg。 setOnCheckedChangeListener只是條件(radiobutton1.getTag == 1){//做的東西}其他{/ /做另一件事}; –

回答

0

對不起,無法在評論中回答。試試這個:

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

這將返回您的RadioButton的ID。

編輯:

你能不能做這樣的事情:

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