【发布时间】:2016-10-27 17:27:31
【问题描述】:
我有一个包含 5 个按钮的 Radiogroup 的警报对话框。按下确定后,无论我是否选择单选按钮,应用程序都会崩溃。为 Radiogroup 尝试了不同的方法,但都失败了。如果有人可以帮助我,我将不胜感激。
PS。我有一个调用此警报对话框活动的开关盒。 colorpickdialog();
这是我的警报对话框 XML:
<RadioGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/radiosizeg"
android:layout_below="@+id/bgadddialogsize"
android:layoutDirection="rtl"
android:gravity="start"
android:layout_gravity="start"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true">
<RadioButton
android:text="@string/sizesmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/sizesmall"/>
<RadioButton
android:text="@string/sizemed"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/sizemed" />
<RadioButton
android:text="@string/sizelar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/sizelar" />
<RadioButton
android:text="@string/sizefill"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/sizefill" />
<RadioButton
android:text="@string/sizecustom"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/sizecustom" />
</RadioGroup>
这是我的 MainActivity.class:
public void colorpickdialog() {
// get prompts.xml view
final RadioGroup radiosizeg = (RadioGroup) findViewById(R.id.radiosizeg);
LayoutInflater layoutInflater2 = LayoutInflater.from(MainActivity.this);
View promptView2 = layoutInflater2.inflate(R.layout.colorpickdialog, null);
AlertDialog.Builder alertDialogBuilder2 = new AlertDialog.Builder(MainActivity.this);
alertDialogBuilder2.setView(promptView2);
// setup a dialog window
alertDialogBuilder2.setCancelable(false)
.setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
radiosizeg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int i) {
int id = radiosizeg.getCheckedRadioButtonId();
switch (id) {
case R.id.sizesmall:
Toast.makeText(getApplicationContext(),"A", Toast.LENGTH_SHORT).show();
break;
case R.id.sizemed:
Toast.makeText(getApplicationContext(),"B", Toast.LENGTH_SHORT).show();
break;
case R.id.sizelar:
Toast.makeText(getApplicationContext(),"C", Toast.LENGTH_SHORT).show();
break;
case R.id.sizefill:
Toast.makeText(getApplicationContext(),"D", Toast.LENGTH_SHORT).show();
break;
case R.id.sizecustom:
Toast.makeText(getApplicationContext(),"E", Toast.LENGTH_SHORT).show();
break;
default:
onCheckedChanged(radioGroup, i);
break;
}
}
});
}
})
.setNegativeButton(getString(R.string.cancel),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
错误堆栈跟踪
10-27 20:56:53.753 4312-4327/? E/ReportTools: This is not beta user build
10-27 20:56:53.959 4312-7462/? E/HsmCoreServiceImpl: onTransact in code is: 102
10-27 20:56:54.025 13521-13539/? E/HwLauncher: SettingsEx , no such field.
10-27 20:56:54.088 8152-8242/? E/PackageLogInfoManager: checkPackageLogState, cr: android.app.ContextImpl$ApplicationContentResolver@4d74931, packageNames: null
【问题讨论】:
-
请提交错误日志
-
这不是错误日志。注意没有
? E/。您那里只有信息和警告消息。 -
此日志是所有应用程序的总称。过滤日志并再次提交。如果使用安卓工作室。您可以在 android 监视器的右侧看到过滤器选项
标签: android switch-statement android-alertdialog