Activity---preferenceActivity

来源:互联网 发布:iptv网络电视怎么连接 编辑:程序博客网 时间:2024/05/29 11:49

<span style="font-family:SimSun;font-size:18px;color:#ff0000;">PreferenceActivity继承了ListActivity,主要用于做设置界面的时候用。</span>
<span style="font-family:SimSun;"><span style="font-size:18px;color:#ff0000;">主布局文件:</span><span style="font-size: 14px;">(这里的这个布局文件不是layou下面的布局文件)</span></span>
<span style="font-family:SimSun;"></span><pre name="code" class="java" style="font-size: 14px;"><?xml version="1.0" encoding="utf-8"?><preference-headers xmlns:android="http://schemas.android.com/apk/res/android" >    <!-- 指定启动特定PreferenceFragment的列表项 -->    <header        android:fragment="com.example.setpreferenceactivity.MainActivity$FirstPreferenceFragment"        android:icon="@drawable/lock2"        android:summary="设置应用的相关选项"        android:title="程序选项设置" />    <header        android:fragment="com.example.setpreferenceactivity.MainActivity$SecondPreferenceFragment"        android:icon="@drawable/lock2"        android:summary="设置应用的相关选项"        android:title="程序选项设置" /></preference-headers>
两个header的布局文件(两个fragment的布局):这里我使用的同一个布局文件。
<span style="font-family:SimSun;"><span style="font-size: 14px;"></span></span><pre name="code" class="java"><?xml version="1.0" encoding="utf-8"?><PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >        <!-- 设置系统铃声 -->    <PreferenceCategory android:title="铃声">    <RingtonePreference         android:ringtoneType="all"        android:title="设置铃声"        android:summary="选择铃声"        android:showDefault="true"        android:key="ring_key"        android:showSilent="true"/>    </PreferenceCategory>    <PreferenceCategory android:title="推送">        <CheckBoxPreference             android:key="tuisong_key"            android:title="是否推送"            android:summaryOn="推送开启"            android:summaryOff="推送关闭"            android:defaultValue="true"/>    </PreferenceCategory>    <PreferenceCategory android:title="用户名">        <EditTextPreference             android:key="name_key"            android:title="填写用户名"            android:summary="填写你的用户名"            android:dialogTitle="你的用户名是:"/>    </PreferenceCategory>    <PreferenceCategory android:title="性别">        <ListPreference             android:key="gender_key"            android:title="选择性别:"            android:dialogTitle="listpreference"            android:entries="@array/array_name_list"            android:entryValues="@array/array_value_list"            android:defaultValue="男"/>         </PreferenceCategory></PreferenceScreen>


<span style="font-size: 14px; font-family: SimSun; text-align: left;">这里做演示就两个fragment用同一个布局界面。</span>
接下来就是主要的java代码了:
<span style="font-size:14px;">package com.example.setpreferenceactivity;import java.util.List;import android.os.Bundle;import android.preference.PreferenceActivity;import android.preference.PreferenceFragment;import android.view.Gravity;import android.widget.Button;import android.widget.ListView;//preferenceActivity继承了listactivity,相当于一个activity中加载了一个listviewpublic class MainActivity extends PreferenceActivity{@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//该方法用于为该界面设置一个标题按钮if(hasHeaders()){Button button=new Button(this);button.setText("设置");setListFooter(button);}ListView list=(ListView) findViewById(android.R.id.list);}//负责加载页面布局文件@Overridepublic void onBuildHeaders(List<Header> target) {loadHeadersFromResource(R.xml.preference_headers, target);}//这个方法要重写,反正当时没有重写就eclipse就报错了@Overrideprotected boolean isValidFragment(String fragmentName) {return true;}//创建preferencefragmentpublic static class FirstPreferenceFragment extends PreferenceFragment{@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);addPreferencesFromResource(R.xml.preference);}}public static class SecondPreferenceFragment extends PreferenceFragment{@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);addPreferencesFromResource(R.xml.preference);}}}</span>


效果图:


0 0
原创粉丝点击