diff options
| -rw-r--r-- | core/java/android/preference/PreferenceScreen.java | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/core/java/android/preference/PreferenceScreen.java b/core/java/android/preference/PreferenceScreen.java index 95e54324f445..fae5f1ae17bb 100644 --- a/core/java/android/preference/PreferenceScreen.java +++ b/core/java/android/preference/PreferenceScreen.java @@ -80,6 +80,8 @@ public final class PreferenceScreen extends PreferenceGroup implements AdapterVi private ListAdapter mRootAdapter; private Dialog mDialog; + + private ListView mListView; /** * Do NOT use this constructor, use {@link PreferenceManager#createPreferenceScreen(Context)}. @@ -145,15 +147,18 @@ public final class PreferenceScreen extends PreferenceGroup implements AdapterVi private void showDialog(Bundle state) { Context context = getContext(); - ListView listView = new ListView(context); - bind(listView); + if (mListView != null) { + mListView.setAdapter(null); + } + mListView = new ListView(context); + bind(mListView); // Set the title bar if title is available, else no title bar final CharSequence title = getTitle(); Dialog dialog = mDialog = new Dialog(context, TextUtils.isEmpty(title) ? com.android.internal.R.style.Theme_NoTitleBar : com.android.internal.R.style.Theme); - dialog.setContentView(listView); + dialog.setContentView(mListView); if (!TextUtils.isEmpty(title)) { dialog.setTitle(title); } |