android - SharedPreferences into a ViewPager -
i need load preferences.xml file based on sharedpreferences viewpager. getting error:
java.lang.illegalstateexception: content view not yet created i searching solution can't found anything. can do?
mainactivity.java
public class mainactivity extends fragmentactivity { private customviewpager customviewpager; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main_layout); customviewpager = (customviewpager) findviewbyid(r.id.pager); customviewpager.setadapter(new custompageradapter()); customviewpager.setpagemargin(0); preferencemanager.setdefaultvalues(this, r.xml.preferences, false); } private class custompageradapter extends pageradapter { @override public object instantiateitem(viewgroup viewgroup, int position) { relativelayout viewlayout = null; layoutinflater inflater = (layoutinflater) viewgroup.getcontext().getsystemservice(context.layout_inflater_service); switch (position) { case 0: viewlayout = (relativelayout) inflater.inflate(r.layout.list_meetings, null); viewgroup.addview(viewlayout, 0); break; case 1: viewlayout = (relativelayout) inflater.inflate(r.layout.settings, null); viewgroup.addview(viewlayout, 0); getfragmentmanager().begintransaction().replace(android.r.id.content, new fragmentpreferences()).commit(); break; } customviewpager.setobjectforposition(viewlayout, position); return viewlayout; } @override public int getcount() { return 2; } @override public boolean isviewfromobject(view view, object object) { return view == object; } } public static class fragmentpreferences extends preferencefragment { @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); addpreferencesfromresource(r.xml.preferences); } @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { // view view = inflater.inflate(r.layout.settings, null); // return view; return null; } } } settings.xml
<?xml version="1.0" encoding="utf-8"?> <relativelayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <listview android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="wrap_content" /> </relativelayout> preferences.xml
<?xml version="1.0" encoding="utf-8"?> <preferencescreen xmlns:android="http://schemas.android.com/apk/res/android"> <listpreference android:key="speed_setting" android:title="@string/speed_setting_title" android:summary="@string/speed_setting_description" android:dialogtitle="@string/speed_setting_title" android:entries="@array/speed_setting_entry_labels" android:entryvalues="@array/speed_setting_entry_labels" android:defaultvalue="@string/speed_setting_default_value" android:icon="@drawable/ic_list_speed_setting" /> <listpreference android:key="permission_type_setting" android:title="@string/permission_type_setting_title" android:summary="@string/permission_type_setting_description" android:dialogtitle="@string/permission_type_setting_title" android:entries="@array/permission_type_setting_entry_labels" android:entryvalues="@array/permission_type_setting_entry_labels" android:defaultvalue="@string/permission_type_setting_default_value" android:icon="@drawable/ic_list_permission_type_setting" /> <listpreference android:key="sensibility_setting" android:title="@string/sensibility_setting_title" android:summary="@string/sensibility_setting_description" android:dialogtitle="@string/sensibility_setting_title" android:entries="@array/sensibility_setting_entry_labels" android:entryvalues="@array/sensibility_setting_entry_labels" android:defaultvalue="@string/sensibility_setting_default_value" android:icon="@drawable/ic_list_sensibility_setting" /> <listpreference android:key="time_format_setting" android:title="@string/time_format_setting_title" android:summary="@string/time_format_setting_description" android:dialogtitle="@string/time_format_setting_title" android:entries="@array/time_format_setting_entry_labels" android:entryvalues="@array/time_format_setting_entry_labels" android:defaultvalue="@string/time_format_setting_default_value" android:icon="@drawable/ic_list_time_format_setting" /> <listpreference android:key="maps_setting" android:title="@string/maps_setting_title" android:summary="@string/maps_setting_description" android:dialogtitle="@string/maps_setting_title" android:entries="@array/maps_setting_entry_labels" android:entryvalues="@array/maps_setting_entry_labels" android:defaultvalue="@string/maps_setting_default_value" android:icon="@drawable/ic_list_maps_setting" /> <listpreference android:key="resource_consumption_setting" android:title="@string/resource_consumption_setting_title" android:summary="@string/resource_consumption_setting_description" android:dialogtitle="@string/resource_consumption_setting_title" android:entries="@array/resource_consumption_setting_entry_labels" android:entryvalues="@array/resource_consumption_setting_entry_labels" android:defaultvalue="@string/resource_consumption_setting_default_value" android:icon="@drawable/ic_list_resource_consumption_setting" /> </preferencescreen>
use preferencefragment. available after api level 11. can find details clear example in link
Comments
Post a Comment