Merge "Fixing memory leak in PreferenceScreen."
This commit is contained in:
@@ -81,6 +81,8 @@ public final class PreferenceScreen extends PreferenceGroup implements AdapterVi
|
|||||||
|
|
||||||
private Dialog mDialog;
|
private Dialog mDialog;
|
||||||
|
|
||||||
|
private ListView mListView;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Do NOT use this constructor, use {@link PreferenceManager#createPreferenceScreen(Context)}.
|
* Do NOT use this constructor, use {@link PreferenceManager#createPreferenceScreen(Context)}.
|
||||||
* @hide-
|
* @hide-
|
||||||
@@ -145,15 +147,18 @@ public final class PreferenceScreen extends PreferenceGroup implements AdapterVi
|
|||||||
|
|
||||||
private void showDialog(Bundle state) {
|
private void showDialog(Bundle state) {
|
||||||
Context context = getContext();
|
Context context = getContext();
|
||||||
ListView listView = new ListView(context);
|
if (mListView != null) {
|
||||||
bind(listView);
|
mListView.setAdapter(null);
|
||||||
|
}
|
||||||
|
mListView = new ListView(context);
|
||||||
|
bind(mListView);
|
||||||
|
|
||||||
// Set the title bar if title is available, else no title bar
|
// Set the title bar if title is available, else no title bar
|
||||||
final CharSequence title = getTitle();
|
final CharSequence title = getTitle();
|
||||||
Dialog dialog = mDialog = new Dialog(context, TextUtils.isEmpty(title)
|
Dialog dialog = mDialog = new Dialog(context, TextUtils.isEmpty(title)
|
||||||
? com.android.internal.R.style.Theme_NoTitleBar
|
? com.android.internal.R.style.Theme_NoTitleBar
|
||||||
: com.android.internal.R.style.Theme);
|
: com.android.internal.R.style.Theme);
|
||||||
dialog.setContentView(listView);
|
dialog.setContentView(mListView);
|
||||||
if (!TextUtils.isEmpty(title)) {
|
if (!TextUtils.isEmpty(title)) {
|
||||||
dialog.setTitle(title);
|
dialog.setTitle(title);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user