刚刚学习了android中preferenceActivity的使用,下面贴出自己的程序代码片段,希望对大家有用。呵呵,也是刚刚开 始研究每多久,希望能和大家多多交流。

android通过配置文件自动生成PreferenceActivity界面

在res文件夹下创建xml/setting_preferences.xml文件,然后创建类继承PreferenceActivity就可以了

<?xml version="1.0" encoding="utf-8"?>

<PreferenceScreen

xmlns:android="http://schemas.android.com/apk/res/android">

<PreferenceCategory android:title="@string/inner_picture">

<ListPreference android:key="listpreference_picsize"

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"/>

</PreferenceCategory>

<PreferenceCategory android:title="@string/channel_change">

<PreferenceScreen android:title="@string/select_change"

android:summary="热门频道为:即 时新闻 要闻 国际"

android:key="change_channel">

</PreferenceScreen>

</PreferenceCategory>

<PreferenceCategory android:title="@string/font_size">

<ListPreference android:key="listpreference_fontsize"

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"/>

</PreferenceCategory>

<PreferenceCategory android:title="@string/user_message" >

<PreferenceScreen android:title="錄入用戶個人資料">

<EditTextPreference android:key="edittext_preference_name"

android:summary="請輸入您的姓 名"

android:dialogTitle="@string/dialog_input_title"></EditTextPreference>

<EditTextPreference android:key="edittext_preference_email"

android:summary="請輸入您的郵 件地址"

android:dialogTitle="@string/dialog_input_title"></EditTextPreference>

<EditTextPreference android:key="edittext_preference_phone"

android:summary="請輸入您的電 話號碼"

android:dialogTitle="@string/dialog_input_title"></EditTextPreference>

</PreferenceScreen>

</PreferenceCategory>

</PreferenceScreen>

类的实现

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<entryValues.length;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 "";

}

ps:From.. http://elena-java.javaeye.com/blog/643449

mark here, leans later

更多相关文章

  1. Android native/C/C++ 监控文件夹变化
  2. Android中资源文件夹res/raw和assets的使用
  3. Android的支持库 && app/apk包进系统 && 预置so库进系统 && 预置
  4. Android(java)学习笔记135:Android中assets文件夹资源的访问
  5. 31、android打开文件夹并列出里面的文件
  6. 《Android学习指南》文件夹
  7. android 获取文件夹、文件的大小 以B、KB、MB、GB 为单位
  8. Android设备与外接U盘实现数据文件夹拷贝到android设备
  9. Android 文件及文件夹操作

随机推荐

  1. [android]无聊写个android的GCDのdispatc
  2. 拦截短信,不让系统发通知
  3. android studio报错Gradle project sync
  4. Android 第五天
  5. Android中的Menu
  6. Working with the Android Calendar
  7. 2011.09.26(4)——— android sample之Note
  8. Android 2.1 源码结构分析
  9. 什么是Android内核
  10. Android之从Browser中打开本地的应用程序