Android 使用AlertDialog.builder弹出对话框。

做了一个ListView,想要实现点击任何一个item都可以弹出一个自定义的对话框。

程序实现代码如下:

// alert_selection.xml是自定义的对话框布局文件
View view = LayoutInflater.from(MainActivity.this).inflate(R.layout.alert_selection, null);
final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setView(view);
builder.setTitle("**");

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, final int position, long id) {
        builder.show();
    }
});

运行程序后第一次点击Item能够正常打开对话框,没有任何问题,但是点击其他位置关闭对话框之后。再次点击Item,程序就会崩溃,提示错误:

java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

请问该怎么解决?

Teemo_
浏览 2965回答 1
1回答

Teemo_

把获取对话框布局和打开对话框这段代码放在Item的点击事件内完成就没有这个问题了,虽然结局了,但是不知道为啥。
打开App,查看更多内容
随时随地看视频慕课网APP