我有一个用于构造包含Spinner小部件的AlertDialog的类。当微调框显示其弹出窗口时,如果我更改手机的方向,则我的应用程序将崩溃,但出现异常提示说有关泄漏的窗口。之前已经多次讨论了此问题,但仅在多线程的情况下。但是我只有一个线程。那我在做什么错?

public class ExpenseDialog extends DialogFragment
{

@Override
public Dialog onCreateDialog(Bundle savedInstanceState)
{
    LayoutInflater factory = LayoutInflater.from(this.getActivity());
    View content = factory.inflate(R.layout.expensedialog, null);

    Spinner spinner = (Spinner) content.findViewById(R.id.catspinner);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
            this.getActivity(), R.array.cats, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);

    return  new AlertDialog.Builder(this.getActivity())
        .setView(content)
        .setPositiveButton("ok", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int whichButton) {
//some code
            }
        })
        .setNegativeButton("cancel", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int whichButton) {
//some code
            }
        })
        .create();
}


}

我显示如下对话框:
(new ExpenseDialog())。show(getSupportFragmentManager(),“ expensedialog”);

最佳答案

有与此相关的错误报告:Bug Report

抱歉,我无法帮助您解决它---我也遇到了同样的问题。

编辑:注释#7为我工作。最初不是因为我使用了DialogFragment,而是应该使用onDestroyView()。

09-04 14:55