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

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:key="edittext_preference_name"

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

                         android:dialogTitle="@string/dialog_input_title">

         android:key="edittext_preference_email"

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

                         android:dialogTitle="@string/dialog_input_title">

         android:key="edittext_preference_phone"

                         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有不同的格式,如EditTextPreferenceListPreferenceCheckBoxPreference等类型

当选择或是输入不同的值时,他们的值会自动保存到sharedpreferences中,当值发生改变的时候会触发

public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,

           String key) {

}

 

可以通过各个preferencekey来得到对象,从而得到所选中的值

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

    }

更多相关文章

  1. Android(安卓)之 zygote 与进程创建
  2. 3.4 管理项目 - 创建Android库
  3. Android应用启动后自动创建桌面快捷方式
  4. 第十二章:Android数据存储(下)
  5. Android开发实践 数据存储 学习、应用、总结
  6. 创建Android守护进程(底层服务)
  7. android的学习记录-包括android的安装、如何在eclipse查看SDK源
  8. Android(安卓)源码分析-Dalvik 虚拟机创建过程
  9. Android服务端开发1-使用Eclipse搭建Java Web服务端

随机推荐

  1. Android自定义视图二:如何绘制内容
  2. Handler的运行机制
  3. android 进程之间通信--Android(安卓)使
  4. Android开发人员的10大抱怨
  5. 小胖加入Android(安卓)Fans的 大军了 呵
  6. Android(安卓)属性动画(Property Animatio
  7. android系统体系结构
  8. Android(安卓)开发者必备的十个工具
  9. Android(安卓)中文 API――android.widge
  10. Android线程的学习