android很多设置界面都会使用PreferenceActivity来实现,但那个界面比较丑陋,显示开发总是满足不了要求。
可以自己实现一个,但是那样又会使Activity中的逻辑代码和xml布局文件过于复杂,远远不及PreferenceActivity来的方便快捷。
开发工具:eclipse 运行环境:模拟器 2.2

这个是我模仿360手机安全卫士做的,背景的图片不大一样,懒得去找了,请谅解。
首先看:PreferenceActivity
public class SetupActivity extends PreferenceActivity{@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.setup_layout);addPreferencesFromResource(R.xml.setting);}}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@drawable/mainbg2"android:orientation="vertical" ><ListViewandroid:id="@android:id/list"android:layout_width="match_parent"android:layout_height="match_parent"android:cacheColorHint="#00000000"android:scrollbarStyle="outsideOverlay" /></LinearLayout>注意ListView的id,这个不是自己定义的,有兴趣的可以去看下android源码中PreferenceActivity的布局文件。
setting.xml:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" ><PreferenceCategoryandroid:layout="@layout/sec_pref_category"android:title="设置1" ><Preferenceandroid:key="sec_password"android:layout="@layout/sec_pref_list_item"android:summary="修改"android:title="点击修改"android:widgetLayout="@layout/sec_pref_widget_more" /></PreferenceCategory><PreferenceCategoryandroid:layout="@layout/sec_pref_category"android:title="设置2" ><CheckBoxPreferenceandroid:defaultValue="true"android:key="sec_sms_notify"android:layout="@layout/sec_pref_list_item"android:summaryOff="设置2—1提示:关闭"android:summaryOn="设置-1提示:开启"android:title="设置2-1提示"android:widgetLayout="@layout/sec_pref_widget_checkbox" /><EditTextPreferenceandroid:defaultValue="设置2-2"android:dialogTitle="设置2-2"android:key="sec_sms_notify_text"android:layout="@layout/sec_pref_list_item"android:positiveButtonText="确定"android:summary="点击修改"android:title="设置2-2"android:widgetLayout="@layout/sec_pref_widget_more" /></PreferenceCategory><PreferenceCategoryandroid:layout="@layout/sec_pref_category"android:title="设置3" ><CheckBoxPreferenceandroid:defaultValue="true"android:key="sec_call_notify"android:layout="@layout/sec_pref_list_item"android:summaryOff="设置3-1提醒:关闭"android:summaryOn="设置3-1提醒:开启"android:title="设置3-1提醒"android:widgetLayout="@layout/sec_pref_widget_checkbox" /><EditTextPreferenceandroid:defaultValue="设置3-2"android:dialogTitle="设置3-2"android:key="sec_call_notify_text"android:layout="@layout/sec_pref_list_item"android:positiveButtonText="确定"android:summary="点击修改"android:title="设置3-2"android:widgetLayout="@layout/sec_pref_widget_more" /></PreferenceCategory></PreferenceScreen>其中的android:widgetLayout="@layout/sec_pref_widget_checkbox"指定checkBox用自定义的checkbox
android:layout="@layout/sec_pref_list_item"指定布局
sec_pref_category.xml:
<?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:background="#ff83a4b4"android:orientation="vertical" ><TextViewandroid:id="@android:id/title"android:layout_width="fill_parent"android:layout_height="fill_parent"android:paddingLeft="5.0dip"android:textColor="#FFFFFF"android:textSize="14.0dip" /></LinearLayout>
sec_pref_widget_checkbox:
<?xml version="1.0" encoding="UTF-8"?>
<CheckBox xmlns:android="http://schemas.android.com/apk/res/android"android:id="@android:id/checkbox"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_vertical"android:layout_marginRight="4.0dip"android:button="@drawable/selector_checkbox"android:clickable="false"android:focusable="false" />
sec_pref_list_item:
<?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="wrap_content"android:background="@drawable/selector_list_item"android:gravity="center_vertical"android:minHeight="?android:listPreferredItemHeight"android:paddingRight="?android:scrollbarSize" ><RelativeLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginBottom="6.0dip"android:layout_marginLeft="15.0dip"android:layout_marginRight="6.0dip"android:layout_marginTop="6.0dip"android:layout_weight="1.0" ><TextViewandroid:id="@android:id/title"android:layout_width="wrap_content"android:layout_height="wrap_content"android:ellipsize="marquee"android:fadingEdge="horizontal"android:singleLine="true"android:textColor="#FFFFFF"android:textSize="18.0sp" /><TextViewandroid:id="@android:id/summary"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignLeft="@android:id/title"android:layout_below="@android:id/title"android:maxLines="4"android:textColor="#AAAAAA"android:textSize="14.0sp" /></RelativeLayout><LinearLayoutandroid:id="@android:id/widget_frame"android:layout_width="wrap_content"android:layout_height="fill_parent"android:gravity="center_vertical"android:orientation="vertical" /></LinearLayout>
sec_pref_widget_more:
<?xml version="1.0" encoding="UTF-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentRight="true"android:layout_marginBottom="6.0dip"android:layout_marginLeft="10.0dip"android:layout_marginRight="4.0dip"android:layout_marginTop="6.0dip"android:src="@drawable/pref_arrow_right" />
代码下载地址:http://download.csdn.net/detail/luck_apple/3911442
仅供学习使用!














