我有一個構建包含微調控件的AlertDialog的類。當Spinner顯示它的彈出窗口時,如果我改變了手機的方向,我的應用程序崩潰,異常情況說有關泄漏窗口的東西。這個問題之前已經討論過很多次,但是隻有在多線程的背景下。但我有一個線程。那麼我做錯了什麼?方向更改崩潰我的應用程序
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();
}
}
我表明這樣的對話: (新ExpenseDialog())顯示(getSupportFragmentManager(), 「expensedialog」);
發佈您的logcat! – 2012-02-21 17:24:50
這是非常大的,但它在beginnig說:活動andrey_it.expensetracker.MainActivity已泄露窗口[email protected]最初在這裏添加 02-21 19:39:56.174: E/WindowManager(19094):android.view.WindowLeaked:Activity andrey_it.expensetracker.MainActivity泄露了窗口[email protected]最初在這裏添加 – 2012-02-21 17:40:29
從我讀過的內容接縫給我,我明白是什麼原因造成的錯誤:在活動重新開始後,我的彈出框恰好與先前不再存在的活動相關聯。但我能做什麼呢? – 2012-02-21 17:43:59