PreferenceScreen:设置页面,可嵌套形成二级设置页面,用Title参数设置标题,summary设置描述(标题下面的文字),key设置唯一的ID,每个PreferenceScreen内可添加其它元素作为二级设置页面。
PreferenceCategory:某一类相关的设置,可用Title参数设置标题。
CheckBoxPreference:是一个CheckBox设置,只有两种值,true或false,可用Title参数设置标题sumary设置描述,用summaryOn和summaryOff参数来设置控件选中和未选中时的提示,defaultValue设置默认值。
ListPreference:下拉框选择控件,用Title参数设置标题,用Summary参数设置说明,点击后出现下拉框,用dialogTitle 设置下拉框的标题,下拉框内显示的内容和具体的值需要在res/values/array.xml中设置两个array来表示。
RingtonePreference:铃声选择框,点击后可选择系统铃声。Title参数设置标题,Summary参数设置说明,dialogTitle参数设置铃声选择框的标题。
EditTextPreference:输入框控件,点击后可输入字符串设置。用Title参数设置标题,Summary参数设置说明,dialogTitle参数设置输入框的标题。
MultiSelectListPreference:android:entries是弹出列表的文本数组,而android:entryValues对应相映的值数组,一一对应。android:title控制perference的文本,summary是描述性的文本。
实现代码:首先在xml文件下新建一个pfs.xml,记得resource Type选Preference,如下图所示
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<CheckBoxPreference android:key="apply_wifi"
android:summary="WLAN"
android:title="使用无线网络" android:defaultValue="true">
</CheckBoxPreference>
<EditTextPreference
android:key="apply_g"
android:summary="fsdfasdf"
android:title="EditTextPreference">
</EditTextPreference>
<RingtonePreference
android:key="fdsaf"
android:summary="RingtonePreference"/>
<SwitchPreference
android:key="dfs"
android:summary="SwitchPreference"/>
<ListPreference
android:key="list"
android:summary="ListPreference"
android:entries="@array/listp"
android:entryValues="@array/listp"/>
<MultiSelectListPreference
android:summary="MultiSelectListPreference"
android:entries="@array/listp"
android:entryValues="@array/listp">
</MultiSelectListPreference>
<PreferenceCategory
android:key="rt1"
android:title="PreferenceCategory"
android:summary="选择铃声"
/>
<ListPreference
android:key="list"
android:summary="ListPreference"
android:entries="@array/listp"
android:entryValues="@array/listp"/>
<MultiSelectListPreference
android:summary="MultiSelectListPreference"
android:entries="@array/listp"
android:entryValues="@array/listp"/>
</PreferenceScreen>
MainActivity.java代码,继承了PreferenceActivity 通过 addPreferencesFromResource(R.xml.pfs);引用布局
package com.example.preferences;
import android.os.Bundle;
import android.preference.EditTextPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceActivity;
import android.widget.Toast;
public class MainActivity extends PreferenceActivity {
public final static String EDITTEXT_KEY = "apply_g";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
addPreferencesFromResource(R.xml.pfs);
initUI();
}
private void initUI() {
// TODO Auto-generated method stub
EditTextPreference ed = (EditTextPreference)findPreference(EDITTEXT_KEY);
ed.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference arg0) {
// TODO Auto-generated method stub
Toast.makeText(getApplication(), "EditTextPreference", Toast.LENGTH_SHORT).show();
return false;
}
});
}
}
array.xml代码
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="listp">
<item>a</item>
<item>b</item>
<item>c</item>
</string-array>
</resources>
实现效果: