【发布时间】:2014-07-20 20:34:13
【问题描述】:
我有一个带有 3 个单选按钮的自定义对话框(在 RadioGroup 中),我正在尝试为每个按钮设置不同的声音。 I want to have a default button with a specific sound and when pick another one and press an OK button, the sound will change.我尝试了一种使用 switch 的方法,但应用程序崩溃了。
这是对话框的 xml:
<RadioGroup
android1:id="@+id/radioGroup1"
android1:layout_width="wrap_content"
android1:layout_height="wrap_content" >
<RadioButton
android1:id="@+id/radio1"
android1:layout_width="wrap_content"
android1:layout_height="wrap_content"
android:onClick="onRadioButtonClicked"
android:textColor="#FFFFFF"
android1:text="cow" />
<RadioButton
android1:id="@+id/radio2"
android1:layout_width="wrap_content"
android1:layout_height="wrap_content"
android:onClick="onRadioButtonClicked"
android:textColor="#FFFFFF"
android1:text="dog" />
<RadioButton
android1:id="@+id/radio3"
android1:layout_width="wrap_content"
android1:layout_height="wrap_content"
android:onClick="onRadioButtonClicked"
android:textColor="#FFFFFF"
android1:checked="true"
android1:text="cat" />
</RadioGroup>
<Button
android1:id="@+id/ok"
android1:layout_width="wrap_content"
android1:layout_height="wrap_content"
android1:text="OK" />
这里是java代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
frequency = (ImageView) findViewById(R.id.frequency);
frequency.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dialogFrequency();
}
});
}
public void dialogFrequency (){
dialog = new Dialog(MainActivity.this);
dialog.setTitle("Choose Frequeny:");
dialog.setContentView(R.layout.activity_dialog);
Button ok = (Button) dialog.findViewById(R.id.ok);
// if button is clicked, close the custom dialog
ok.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
}
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.radio1:
if (checked)
radio1.setChecked(true);
radio2.setChecked(false);
radio3.setChecked(false);
break;
case R.id.radio2:
if (checked)
radio2.setChecked(true);
radio1.setChecked(false);
radio3.setChecked(false);
break;
case R.id.radio3:
if (checked)
radio3.setChecked(true);
radio1.setChecked(false);
radio2.setChecked(false);
break;
default:
return true;;
}
}
【问题讨论】:
标签: android dialog radio-button onclicklistener