PreferenceActivity使用
刚刚学习了android中preferenceActivity的使用,下面贴出自己的程序代码片段,希望对大家有用。呵呵,也是刚刚开始研究每多久,希望能和大家多多交流。
android通过配置文件自动生成PreferenceActivity界面
在res文件夹下创建xml/setting_preferences.xml文件,然后创建类继承PreferenceActivity就可以了
<?xml version="1.0" encoding="utf-8"?>
xmlns:android="http://schemas.android.com/apk/res/android">
android:title="@string/inner_picture"
android:summary="@string/inner_picture_summary"
android:entries="@array/pic_size_list"
android:entryValues="@array/pic_sizevalue_list"
android:dialogTitle="@string/dialog_title"/>
android:summary="热门频道为:即时新闻 要闻 国际"
android:key="change_channel">
android:title="@string/font_size"
android:summary="@string/font_size_summary"
android:entries="@array/font_size_list"
android:entryValues="@array/font_sizevalue_list"
android:dialogTitle="@string/dialog_title"/>
android:summary="請輸入您的姓名"
android:dialogTitle="@string/dialog_input_title">
android:summary="請輸入您的郵件地址"
android:dialogTitle="@string/dialog_input_title">
android:summary="請輸入您的電話號碼"
android:dialogTitle="@string/dialog_input_title">
类的实现
public class SettingPreferenceActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener {
private static final String KEY_FOR_CHANNEL_CHANGE_PREFERENCE="change_channel";
@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
Preference preference) {
if(preference.getKey()!=null&&preference.getKey().equals(KEY_FOR_CHANNEL_CHANGE_PREFERENCE)){
Intent intent = new Intent(this,ChannelSelectActivity.class);
startActivity(intent);//点击PreferenceScreen 跳转至其它Activity
}
return super.onPreferenceTreeClick(preferenceScreen, preference);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.seting_preferences);
// requestWindowFeature(Window.FEATURE_NO_TITLE);
}
}
preference有不同的格式,如EditTextPreference、ListPreference、CheckBoxPreference等类型
当选择或是输入不同的值时,他们的值会自动保存到sharedpreferences中,当值发生改变的时候会触发
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
String key) {
}
可以通过各个preference的key来得到对象,从而得到所选中的值
ListPreference listPreferencePicsizes=(ListPreference)findPreference("listpreference_picsize");//內嵌圖片大小設置
listPreferencePicsizes.setSummary("当前图片大小为:"+getText(listPreferencePicsizes));
String getText(Preference p)
{
String value;
try
{
if (p instanceof ListPreference)
{
value = ((ListPreference) p).getValue();
CharSequence[] entries = ((ListPreference) p).getEntries();
CharSequence[] entryValues = ((ListPreference) p).getEntryValues();
for (int i = 0;i
{
if (value.equals( (String)entryValues[i]))
return (String)entries[i];
}
}
else if (p instanceof EditTextPreference)
{
return ((EditTextPreference) p).getText();
}
}
catch(Exception e)
{
return "";
}
return "";
}
更多相关文章
- Android的支持库 && app/apk包进系统 && 预置so库进系统 && 预置
- Android(java)学习笔记135:Android中assets文件夹资源的访问
- 31、android打开文件夹并列出里面的文件
- 《Android学习指南》文件夹
- android 获取文件夹、文件的大小 以B、KB、MB、GB 为单位
- Android设备与外接U盘实现数据文件夹拷贝到android设备
- Android 文件及文件夹操作
- android 工程中重新生成gen文件夹或R.java 文件
- Android创建隐藏文件或者文件夹