我在抽屉布局的导航视图中采用了无线电组,如下所示
<android.support.design.widget.NavigationView
app:headerLayout="@layout/header"
app:menu="@menu/drawer">
<RadioGroup>
<RadioButton/>
<RadioButton/>
</RadioGroup>
</android.support.design.widget.NavigationView>
我想获取所选的单选按钮文本或ID但我没有得到任何日志或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 :(得分:0)
抱歉无法回答评论。试试这个:
navigationView.getMenu().findItem(R.id.radioButtonId);
这将返回RadioButton
的ID。
编辑:
你能做这样的事吗:
RadioButton radio = (RadioButton)navigationView.findViewById(R.id.radioButtonId);
答案 1 :(得分:0)
示例 - 就像在developer.android
中提供的那样您只需在xml文件中添加属性onClick,如下所示
<?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;
}
}