We can create PreferenceActivity with header and Fotter.
We shoud make following files and call method.
- Create Layout with ListView.
- Create Preference XML.
- Call setContentView() and addPreferencesFromResource() in onCreate().
Create Layout with ListView
Make layout xml file , to set PreferenceActivity#setContentView().It must have ListView with android:id="@+id/android:list".
you shoud add android:layout_height="0.0dp"and android:layout_weight="1" to ListView, because to show footer in bottom
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <!-- Header --> <LinearLayout android:id="@+id/linearLayout2" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Header" android:textAppearance="?android:attr/textAppearanceLarge" /> </LinearLayout> <!-- Show Preference in ListView --> <ListView android:id="@+id/android:list" android:layout_width="match_parent" android:layout_height="0.0dp" android:layout_weight="1" > </ListView> <!-- Footer --> <LinearLayout android:id="@+id/linearLayout1" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Footer" android:textAppearance="?android:attr/textAppearanceLarge" /> </LinearLayout> </LinearLayout>
Create Preference XML
Create Preference XML.Sample.
<?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" > <CheckBoxPreference android:key="checkbox_preference" android:summary="summary_checkbox_preference" android:title="checkbox_preference" /> <EditTextPreference android:dialogTitle="dialog_title_edittext_preference" android:key="edittext_preference" android:summary="summary_edittext_preference" android:title="title_edittext_preference" /> <PreferenceScreen android:summary="intent_preference" android:title="intent_preference" > <intent android:action="android.intent.action.VIEW" android:data="http://www.android.com" /> </PreferenceScreen> </PreferenceScreen>
Call setContentView() and addPreferencesFromResource() in onCreate()
You must call setContentView(YOUR_LAYOUT_WIHT_HEADER_FOOTER_ID).@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); addPreferencesFromResource(R.xml.pref); }
This article does a lot of help
ReplyDeleteThanks Man.
ReplyDeleteThis served as a perfect starting point for customizing my pref page.
keep up the good work.
Thanks a lot!
ReplyDeleteI have a problem. On preview all is fine, but when I run the aplivatio, the list view fit all the screen, and the footer stay beyond the list.
ReplyDeleteThanks!
How can I fix this ??
I have a problem. On preview all is fine, but when I run the aplivatio, the list view fit all the screen, and the footer stay beyond the list.
ReplyDeleteThanks!
How can I fix this ??