`
elena_java
  • 浏览: 35947 次
  • 性别: Icon_minigender_2
  • 来自: 济南
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

PreferenceActivity的使用 android

阅读更多

刚刚学习了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 "";

}

分享到:
评论
2 楼 adamli007 2010-04-28  
明白了,好贴,感谢。
1 楼 adamli007 2010-04-28  
好贴!

ListPreference  listPreferencePicsizes=(ListPreference)findPreference("listpreference_picsize");这句可以直接放在onCreate方法中吗?
listpreference_picsize就是想取得的android:key 对吗?

为什么我这样用会报错?

相关推荐

    PreferenceActivity用法简介Android X

    PreferenceActivity用法简介 Android X

    Android软件开发之PreferenceActivity中组件的使用

    本教程将深入探讨如何在Android应用中使用PreferenceActivity及其组件。 首先,让我们了解PreferenceActivity的基本概念。PreferenceActivity是Android SDK提供的一种特殊Activity类型,它专门用于展示和处理用户...

    Android PreferenceActivity 使用练习

    它的使用方式与`PreferenceActivity`类似,但更易于在现代Android项目中集成。 总结一下,`PreferenceActivity`是Android中构建设置界面的便捷工具。通过XML定义偏好项,结合`addPreferencesFromResource()`加载,...

    Android 属性页PreferenceActivity的实现

    在Android开发中,`PreferenceActivity`是用于创建用户设置界面的一种特殊类型的Activity。它使得开发者可以轻松地构建具有各种设置选项的界面,如开关、单选按钮、复选框等,而无需从头编写大量的XML和Java代码。...

    PreferenceActivity简介

    通过使用PreferenceActivity,开发者可以方便地创建出具有标准Android风格的设置界面,而无需手动设计布局。它将XML定义的偏好项与Activity中的代码逻辑关联起来,使得UI元素的操作变得简单易行。 要使用...

    Android PreferenceActivity 学习笔记

    如果你需要支持低版本Android,仍然可以使用PreferenceActivity,但在新项目中,推荐使用PreferenceFragment。 标签"源码"意味着我们需要理解PreferenceActivity和Preference相关类的内部实现。通过阅读源码,我们...

    PreferenceActivity 类的使用,它可以保存设置

    PreferenceFragment提供了与PreferenceActivity相似的功能,但它可以嵌入到其他Activity中,更适合在现代Android应用中使用。 在实际开发中,我们可能会遇到需要自定义Preference的情况,比如需要添加额外的事件...

    Android之PreferenceActivity简介

    ### Android之PreferenceActivity详解 #### 一、PreferenceActivity概述 **PreferenceActivity** 是Android系统提供的一种专门用于展示和管理应用设置界面的Activity。它能够帮助开发者快速构建美观且功能丰富的...

    android PreferenceActivity中的组件源码

    android PreferenceActivity中的组件源码~

    android中PreferenceActivity详解

    标题与描述均提及了《Android中PreferenceActivity详解》,这一主题涉及了Android开发中关于...掌握PreferenceActivity的使用,对于任何希望提升应用定制化程度和用户满意度的Android开发者来说,都是不可或缺的技能。

    Android PreferenceActivity

    在Android开发中,`PreferenceActivity`是用于创建设置界面的一个重要组件。它是Android SDK提供的一种特殊类型的Activity,专门用于展示用户可配置的设置项。在深入理解`PreferenceActivity`之前,我们先要明白`...

    Android之PreferenceActivity.doc

    PreferenceActivity在Android开发中主要用于构建设置界面,类似于iOS中的偏好设置。它是一个特殊的Activity,用于展示和管理用户配置项,通常包含各种可交互的控件,如开关按钮、列表选择和输入框等,用于保存用户的...

    preferenceActivity的简单使用

    虽然Android 3.0(API级别11)之后推荐使用`PreferenceFragment`替代`PreferenceActivity`,但仍然可以通过自定义布局和重写方法来实现`PreferenceActivity`的高级定制。例如,可以覆盖`onCreateHeaderView`来创建...

    Android至PreferenceActivity

    ### Android之PreferenceActivity详解 #### 一、Introduction 在Android开发过程中,经常需要为应用提供一个用户可配置的界面,以便于用户能够调整各种设置。PreferenceActivity正是Android平台提供的一个非常实用...

    玩转Android--UI篇--PreferenceActivity(开启wifi和音乐等)

    在Android开发中,UI设计是至关重要的一环,而PreferenceActivity是Android系统提供的一种用于构建设置界面的特殊Activity。本篇文章将深入探讨如何利用PreferenceActivity来创建用户交互界面,特别是涉及开启WiFi和...

    仿IOS的PreferenceActivity界面

    "仿IOS的PreferenceActivity界面"就是一个这样的实践,它主要涉及到Android的Preference类和Activity的使用,以及UI样式的美化。PreferenceActivity是Android系统提供的一种用于展示设置界面的特殊Activity,它能够...

    PreferenceActivity

    使用 PreferenceActivity设置个性信息, 参考:android 设置类PreferenceActivity http://blog.csdn.net/xiaobijia/article/details/41479235

    继承PreferenceActivity

    标题中的“继承PreferenceActivity”指的是在Android开发中,利用`PreferenceActivity`类来构建设置界面。`PreferenceActivity`是Android SDK提供的一种特殊类型的Activity,它主要用于创建和展示一系列的偏好设置,...

Global site tag (gtag.js) - Google Analytics