Fixed NPE in settings when rotating device

This commit is contained in:
str4d
2014-05-22 13:32:00 +00:00
parent 55c6660d37
commit 71fd82ad39

View File

@@ -41,7 +41,6 @@ public class SettingsActivity extends PreferenceActivity {
// Preference Header vars
private Header[] mIdentityListHeaders;
private List<Header> mGeneratedHeaders;
private String mRequestedIdentityKey;
private String mDeletingIdentityKey;
@@ -185,9 +184,6 @@ public class SettingsActivity extends PreferenceActivity {
}
}
}
// Save for later use (see setListAdapter)
mGeneratedHeaders = target;
}
@@ -344,7 +340,7 @@ public class SettingsActivity extends PreferenceActivity {
super.setListAdapter(adapter); // TODO: implement legacy headers styling
} else {
// TODO: Fix NPE when rotating screen
super.setListAdapter(new HeaderAdapter(this, mGeneratedHeaders));
super.setListAdapter(new HeaderAdapter(this, adapter));
}
}
@@ -359,6 +355,7 @@ public class SettingsActivity extends PreferenceActivity {
TextView summary;
}
private ListAdapter mAdapter;
private LayoutInflater mInflater;
static int getHeaderType(Header header) {
@@ -400,11 +397,22 @@ public class SettingsActivity extends PreferenceActivity {
return true;
}
public HeaderAdapter(Context context, List<Header> objects) {
super(context, 0, objects);
public HeaderAdapter(Context context, ListAdapter adapter) {
super(context, 0);
mAdapter = adapter;
mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public Header getItem(int position) {
return (Header) mAdapter.getItem(position);
}
@Override
public int getCount() {
return mAdapter.getCount();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
HeaderViewHolder holder;