所以我有一个按钮,单击它时会显示一个警报对话框。
我在活动的 onCreate 方法中创建警报对话框的视图。
其代码就在这里:
LayoutInflater factory = LayoutInflater.from(this);
view = factory.inflate(R.layout.grade_result, null);
当我第一次按下按钮时,对话框会按照我想要的方式显示,但是当我第二次按下按钮时,它会抛出此异常。
11-28 00:35:58.066: E/AndroidRuntime(30348): 原因: java.lang.IllegalStateException: 指定的子级已经有父级。您必须首先对子级的父级调用removeView()。
我的按下按钮时显示 AlertDialog 的方法的代码就在这里:
public void details(View v){
final AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setView(view);
alert.setMessage("Details About Your Grades")
.setCancelable(false)
.setPositiveButton("Continue", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id){
dialog.cancel();
}
});
alert.show();
任何帮助,将不胜感激!
谢谢你!
膨胀应该在 AlertDialog 的构建器中设置的视图对我有用:
Button mButton = (Button) findViewById(R.id.my_button);
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// inflating view out of the onClick() method does not work
LayoutInflater mInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final ViewGroup viewGroup= (ViewGroup) mInflater.inflate(R.layout.my_view, null);
Dialog alertDialog = new AlertDialog.Builder(getActivity())
.setTitle(R.string.my_title)
.setView(viewGroup)
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}).create();
alertDialog.show();
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)