Settings 设置(2)
2015-12-03 15:00
399 查看
Settings 设置(2)
Preference.xml布局:
arrays.xml布局:
上层代码:
效果图:
Preference.xml布局:
<?xml version="1.0" encoding="UTF-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" > <PreferenceCategory android:title="第一组"> <ListPreference android:icon="@drawable/zjl" android:dialogTitle="list dialog Title" android:entries="@array/citys" android:entryValues="@array/citys_code" android:key="list_key" android:summary="list 的内容" android:title="选择 title" /> </PreferenceCategory> <PreferenceCategory android:title="第二组"> <EditTextPreference android:icon="@drawable/ic_launcher" android:defaultValue="缺省值1" android:key="edit_text_key_1" android:summary="edit summary" android:title="写什么 text 1" /> <CheckBoxPreference android:icon="@drawable/ic_launcher" android:defaultValue="true" android:key="checkbox_key" android:summary="checkbox summary" android:title="勾选 title" /> </PreferenceCategory> <!-- 点击将浏览和打开网页 --> <Preference android:icon="@drawable/csdn" android:summary="http://blog.csdn.net/Rokends" android:title="网页浏览"> <intent android:action="android.intent.action.VIEW" android:data="http://blog.csdn.net/Rokends" /> </Preference> <SwitchPreference android:icon="@drawable/wifi" android:key="open_key" android:summary="Chaniese_520" android:title="WiFi" /> <!-- 此处将跳转到下一屏设置 --> <PreferenceScreen android:icon="@drawable/ic_launcher" android:key="preference_screen_key_2" android:persistent="false" android:title="跳转到下页 " > <EditTextPreference android:icon="@drawable/ic_launcher" android:defaultValue="缺省值2" android:key="edit_text_key_2" android:summary="edit summary" android:title="写什么 text 2" /> </PreferenceScreen> </PreferenceScreen>
arrays.xml布局:
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="citys"> <item>成都</item> <item>北京</item> <item>上海</item> </string-array> <string-array name="citys_code"> <item>028</item> <item>010</item> <item>021</item> </string-array> </resources>
上层代码:
package com.example.settings; import android.content.SharedPreferences; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; import android.os.Bundle; import android.preference.EditTextPreference; import android.preference.ListPreference; import android.preference.Preference; import android.preference.PreferenceActivity; import android.preference.PreferenceManager; import android.preference.PreferenceScreen; import android.widget.Toast; public class MainActivity extends PreferenceActivity { private MyOnSharedPreferenceChangeListener mOnSharedPreferenceChangeListener = new MyOnSharedPreferenceChangeListener(); private EditTextPreference mEditTextPreference; private final String A_KEY = "edit_text_key_1"; private ListPreference mListPreference; private final String LIST_KEY = "list_key"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // setContentView(R.layout.activity_main); // 通用的读取设置某个值的方法 SharedPreferences sharedPreferences = PreferenceManager .getDefaultSharedPreferences(this); String s = sharedPreferences.getString(A_KEY, "暂时为空"); // 添加设置选项 addPreferencesFromResource(R.xml.preferences); // 预读取。为PreferenceActivity中的某个设置选项初始化值 mEditTextPreference = (EditTextPreference) findPreference(A_KEY); mEditTextPreference.setSummary(s); // 注册添加设置的项数据发生变化时候的监听 sharedPreferences.registerOnSharedPreferenceChangeListener(mOnSharedPreferenceChangeListener); mListPreference = (ListPreference) findPreference(LIST_KEY); } @Override protected void onPause() { super.onPause(); getPreferenceScreen().getSharedPreferences() .unregisterOnSharedPreferenceChangeListener( mOnSharedPreferenceChangeListener); } @Override protected void onResume() { super.onResume(); getPreferenceScreen().getSharedPreferences() .registerOnSharedPreferenceChangeListener( mOnSharedPreferenceChangeListener); } // 那一个设置选项栏被触发,回掉机制 @Override public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { Toast.makeText(getApplication(),preference.getTitle()+"->"+preference.getKey(), Toast.LENGTH_SHORT).show(); return false; } private class MyOnSharedPreferenceChangeListener implements OnSharedPreferenceChangeListener { @Override public void onSharedPreferenceChanged( SharedPreferences sharedPreferences, String key) { if(key.equals(A_KEY)){ String s = sharedPreferences.getString(A_KEY, "NULL"); mEditTextPreference.setSummary(s); } if(key.equals(LIST_KEY)){ String e = mListPreference.getEntry()+""; String v = mListPreference.getValue(); mListPreference.setSummary(e+":"+v); } Toast.makeText(getApplication(), key, Toast.LENGTH_SHORT).show(); } } }
效果图:
相关文章推荐
- chrome console 调试xpath
- JMS与Spring之一(用JmsTemplate同步收发消息) --转
- 属性传值
- 关于STL内的比较函数
- Java基础知识:Java实现Map集合二级联动1
- apache虚拟目录设置
- 微信支付 链接
- MIN()与MAX()函数 的注意事项
- SAFEARRAY传递自定义结构体
- Java内功提升之继承
- 我是如何自学Android,资料分享
- 最美应用-从Android研发工程师的角度之[厨房故事]
- 指针与引用的实现细节原理及如何选用
- kernel/head.S
- Windows Services windows服务如何删除服务
- textarea 空格的问题
- 求两个数的最大公约数算法
- 数据库连接池
- open和fopen的区别
- JSP 页面中用绝对路径显示图片