我有一个用于构造包含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()。