`

Android的数据存储之SharedPreferences2——使用PreferenceActivity实现设置界面

 
阅读更多

PreferenceActivity是Activity的子类,可以方便的实现设置界面。

PreferenceActivity会通过一个xml配置文件来描述设置界面,并且系统会自动保存当前设置的最后状态。

 

使用步骤:

1、编写一个类继承自PreferenceActivity的子类。

   

//默认会把key-value 存储在 包.xml中。再次访问Activity时,也是默认从 包.xml中读取
addPreferencesFromResource(R.xml.pref);

 

2、在res/xml目录中建立一个用于描述设置界面的xml文件

   a,新建一个xml目录

   b,新建一个pref.xml   

   

 

 c、创建如下结果的文件

 


 
  显示结果如下:

 
       

 
 重新进入后保存了之前设置的值,因为PreferenceActivity中,会默认读取 包.xml 来设置默认值。

 

问题一:可否修改PreferenceActivity保存数据的文件名。

答:PreferenceActivity内部使用了SharedPreferences对象保存数据,默认存储路径和文件名都和后者相同,路径是:shared_prefs/包.xml .

getPreferenceManager().setSharedPreferencesName("setting");

上述方法修改默认的文件名为 setting.xml 但是需要注意的是,文件名修改后,重新访问这个Activity的时候不会自动读取setting.xml中的文件。因为默认读取的是 包.xml 这个文件,故建议不修改。

 

问题二: 上面案例中的EditTextPreference 中,填写用户名后点击确定,页面摘要地方不显示输入内容。

 

public class MainActivity3 extends PreferenceActivity {
	SharedPreferences pref;
	EditTextPreference etp, etp_phone;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		addPreferencesFromResource(R.xml.pref);
//		getPreferenceManager().setSharedPreferencesName("setting");
		try {
			etp = (EditTextPreference) findPreference("individual_name");
			etp.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
				@Override
				public boolean onPreferenceChange(Preference preference,
						Object newValue) {
					preference.setSummary(newValue.toString());
					return true; // 是否写入xml
				}
			});

			etp_phone = (EditTextPreference) findPreference("mobile");
			etp_phone
					.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
						@Override
						public boolean onPreferenceChange(
								Preference preference, Object newValue) {
							preference.setSummary(newValue.toString());
							return true;
						}
					});

			ListPreference list = (ListPreference) findPreference("list_sort");
			// OnSharedPreferenceChanged监听事件必须进行注册
			list.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
				@Override
				public boolean onPreferenceChange(Preference preference,
						Object newValue) {
					String[] ss = getResources().getStringArray(
							R.array.pref_entries);
					preference.setSummary("Current value is "
							+ ss[Integer.parseInt(newValue.toString()) - 1]);
					return true;// 是否写入xml
				}
			});

		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

 

 说明:本文参照李宁老师的《Android高薪之路》

  • 大小: 32.7 KB
  • 大小: 89.8 KB
  • 大小: 53.6 KB
  • 大小: 54.1 KB
分享到:
评论

相关推荐

    Android开发之数据存储的四种方式之SharedPreferences

    Android项目开发中使用的数据存储方式有:网络存储、sqlite存储、File存储和SharedPreferences存储,四种存储方式对应的Demo别人是NetworkDemo、SqliteDemo、FileDemo和SharedPreferencesDemo,根据应用的场景选择...

    Android数据存储——SharedPreferences(登入记住密码)

    在众多的数据存储方式中,SharedPreferences是一种轻量级的选择,尤其适用于存储小量的键值对数据,如用户设置、登录状态等。本篇文章将深入探讨如何使用SharedPreferences实现“记住密码”功能。 一、...

    Android数据存储之SharedPreferences

    SharedPreferences是Android提供的一种轻量级的数据存储方式,主要用于存储简单的小型数据,如偏好设置、用户选项等。在本项目中,开发者已经根据官方文档编写了关于SharedPreferences的代码示例,你可以通过下载来...

    android 数据存储之SharedPreferences

    在本项目"android 数据存储之SharedPreferences"中,我们将深入探讨如何使用SharedPreferences来实现数据的持久化。 SharedPreferences的工作原理是基于XML文件,这些文件存放在设备的内部存储区,通常位于`data/...

    android 数据存储——SharedPreferences,有代码实现,简单易懂

    这篇博文将主要探讨SharedPreferences这一轻量级的数据存储方式,它适合存储简单的键值对数据,如设置偏好。通过SharedPreferences,开发者可以方便地进行数据读写,且这些数据会持久化存储在设备上,即使应用关闭或...

    Android 3种数据保存(SharedPreferences存储 内部文件存储 数据库存储)

    本教程将详细介绍Android中的三种主要数据存储方式:SharedPreferences存储、内部文件存储以及数据库存储。 1. SharedPreferences存储 SharedPreferences是Android提供的一种轻量级的数据存储方式,用于保存应用...

    安卓Android源码——精仿QQ设置界面.zip

    这个压缩包"安卓Android源码——精仿QQ设置界面.zip"提供了一个学习和研究的机会,它包含了一个仿照QQ应用设置界面的示例项目——QQUIDemo。通过分析这个项目,我们可以学到很多关于Android界面设计、布局管理、事件...

    Android案例:登录界面,记住登录密码。利用数据存储SharedPreferences

    利用数据存储的SharedPreferences开发技术,实现了一个简易的登录界面,可以记住登录密码等。

    Android数据存储--SharedPreferences存储

    SharedPreferences是Android提供的一种轻量级的数据存储方式,主要用于存储少量简单的键值对数据,如配置设置、用户偏好等。在本篇博文中,我们将深入探讨如何使用SharedPreferences进行数据存储,并通过源码分析其...

    Android中DataStore替代SharedPreferences

    Android开发者们长期以来一直依赖SharedPreferences作为轻量级的数据存储解决方案,它的简单易用性使其在小规模数据存储方面受到了广泛欢迎。然而,随着应用程序复杂性的增加,SharedPreferences的局限性逐渐暴露...

    android studio 利用SharedPreferences实现自动登录

    在Android应用开发中,SharedPreferences是Android提供的一种轻量级的数据存储方式,主要用于存储一些简单的配置信息,如用户设置、登录状态等。在这个“android studio 利用SharedPreferences实现自动登录”的主题...

    Android使用SharedPreferences和SQLite数据库实现数据存储

    本文将详细探讨如何使用SharedPreferences和SQLite数据库这两种常见的Android数据存储机制。 首先,我们来看SharedPreferences。SharedPreferences提供了一种轻量级的数据存储方式,适用于保存简单的键值对数据,如...

    Android应用源码之SharedPreferences.zip

    在Android应用开发中,SharedPreferences是Android提供的一种轻量级的数据存储机制,用于存储应用程序的简单配置数据,如用户设置、应用的状态信息等。这个压缩包“Android应用源码之SharedPreferences.zip”很可能...

    Android中使用SharedPreferences实现自动登录

    实现这一功能的关键在于持久化用户的登录状态,而SharedPreferences正是Android提供的一种轻量级的数据存储机制,适用于保存简单的键值对数据。本文将详细介绍如何在Android中使用SharedPreferences实现自动登录。 ...

    Android数据持久化之二:SharedPreferences 存储

    Android 系统中主要提供了三种方式用于实现数据持久化功能,分别是: 1、文件存储 2、SharedPreference 存储 3、数据库存储。SharedPreferences 是使用键值对的方式来存储数据的,使用 SharedPreferences来进行数据...

    AndroidStudio————实战演练——仿美团外卖菜单

    在本项目中,"AndroidStudio————实战演练——仿美团外卖菜单"是一个专注于使用Android Studio开发的应用程序实战案例,目标是创建一个类似于美团外卖的菜单功能。这个项目涵盖了多个Android开发的关键知识点,...

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

    在Android应用开发中,PreferenceActivity是用于创建设置界面的一个特殊Activity。它允许开发者以XML方式定义用户界面元素,如开关、选择列表等,使得创建设置界面变得更加简洁和规范。本教程将深入探讨如何在...

    安卓Android源码——安卓Android学习——数据存储.zip

    结合使用,可以实现数据的实时更新和生命周期管理。 9. **云同步** 对于需要在多设备间同步的数据,可以利用Google的Firebase或自建服务器实现云同步。这涉及到网络请求、数据解析以及冲突解决等复杂问题。 10. *...

    Android-Android系统SharedPreferences进行的封装

    在Android开发中,SharedPreferences是系统提供的一种轻量级的数据存储方式,主要用于保存应用程序中的简单配置数据,如布尔值、整型、浮点型、字符串等。由于它的操作简便且易于理解,因此在需要持久化小量数据时...

Global site tag (gtag.js) - Google Analytics