Preferences 在Android当中被用来记录应用,以及用户喜好等等,它可以用来保存
简单的数据类型,如Int,Double,Boolean等。Preferences中保存的数据可以理解为Map型。我们通过PreferenceManager 以及getDefaultSharedPreferences(Context) 来获取它,比如当我们想获得整数我们可以用 getInt(String key, int defVal) .获取里面的某个键值,当我们想修改时候我们用 putInt(String key, int newVal), 最后用 edit(), 方法提交!千万不要忘记了哦~
为了让大家跟好的理解我做了一个简单的Demo,程序主要有个TextView控件,上面写着用户使用改应用的次数。效果如下图所示:
下面是实现Demo的大体步骤:
一、新建一个Android工程命名为:PreferencesDemo。
二、在修改main.xml布局文件,这里只是在TextView控件里加了一个id.代码如下:
view plaincopy to clipboardprint?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
</LinearLayout>
三、修改PreferenceDemo.java的代码,全部代码如下:
view plaincopy to clipboardprint?
package com.android.tutor;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.widget.TextView;
public class PreferencesDemo extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
SharedPreferences mPerferences = PreferenceManager
.getDefaultSharedPreferences(this);
int counter = mPerferences.getInt("counter", 0);
TextView mTextView = (TextView)findViewById(R.id.text);
mTextView.setText("This app has been started " + counter + " times.");
SharedPreferences.Editor mEditor = mPerferences.edit();
mEditor.putInt("counter", ++counter);
mEditor.commit();
}
}
package com.android.tutor;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.widget.TextView;
public class PreferencesDemo extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
SharedPreferences mPerferences = PreferenceManager
.getDefaultSharedPreferences(this);
int counter = mPerferences.getInt("counter", 0);
TextView mTextView = (TextView)findViewById(R.id.text);
mTextView.setText("This app has been started " + counter + " times.");
SharedPreferences.Editor mEditor = mPerferences.edit();
mEditor.putInt("counter", ++counter);
mEditor.commit();
}
}
四、运行代码,实现上述效果.
五、查看Preferences文件,首先打开命令终端:adb shell一下,然后cd data/data进入该目录,ls一下我们会发现一大堆包文件,入下图所示:
cd com.android.tutor (这里是我程序的包名) /shared_prefs,ls一下会发现.xml文件如下图:
打开.xml文件,格式如下(为什么这样大家自己去理解):
view plaincopy to clipboardprint?
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<int name="counter" value="3" />
</map>
分享到:
相关推荐
android-secure-preferences About This project uses the Encryption class from: http://www.java2s.com/Code/Android/Security/AESEncryption.htm Gives an implementation of SharedPreferences, which encrypts...
Android 使用Shared Preferences进行数据存储-样例,演示如何使用 Shared Preferences 获得数据和保存数据、如何使用getPreferences方法创建文件的模式,以及如何使用getPreferences模拟用户参数设置、查看 ...
FastSave is An Android library for fast and easy access to Android Shared preferences. It allows you to save any type or list in the sharedpreferences and retrieve it in convenient way. Installation ...
Compatible with kotlin android and kotlin native for iphone class MyPresenter { val preferences = Preferences() fun start(){ preferences.getString("userName")?.let { view.displayUser(it) } val...
以下是一个简单的示例,展示了如何读取Preferences中的数据: ```java // 定义Preferences的名字 String PREFS_NAME = "Note.sample.roiding.com"; // 获取SharedPreferences对象 SharedPreferences settings = ...
在Android开发中,偏好设置(Preferences)是用于存储用户设置的关键组件,它们提供了界面友好的方式来让用户定制应用的行为。Android-preferences是一个开源项目,它专注于提供更高效、更灵活的方式来管理和展示...
【Android中的DataStore替代SharedPreferences】 Android开发者们长期以来一直依赖SharedPreferences作为轻量级的数据存储解决方案,它的简单易用性使其在小规模数据存储方面受到了广泛欢迎。然而,随着应用程序...
在Android开发中,数据存储是应用生命周期管理的重要组成...通过这个简单的实例,你应该已经掌握了如何在Android项目中使用SharedPreferences来保存和读取数据。在实际项目中,可以根据需求灵活运用,提升用户体验。
描述中的"Use of Preferences in Android pdf"进一步确认了我们将深入研究如何在Android应用中有效地使用Preferences。 Preferences在Android中主要分为两种类型:SharedPreferences和PreferenceManager。...
很想做个天气预警的功能, 想用preferences来做界面。 看了很多preferences感觉定制性太差 所以自己做了一个。 应该是不错的demo 定制preferences在preferencesActivity中的布局 和自定义了对话框的布局
在Android开发中,数据存储是不可或缺的一部分,DataStore是Google推出的一种新型持久化存储解决方案,旨在替代SharedPreferences。本文将深入探讨Android DataStore的使用方法及其封装技巧,旨在帮助开发者更好地...
Android高手进阶教程之----Android 中Preferences的使用! .doc Android高手进阶教程之----Android 中自定义View的应用.doc Android高手进阶教程之----Android 中自定义属性(attr.xml,TypedArray)的使用! .doc ...
Reactive SharedPreferences for Android. Usage Create an RxSharedPreferences instance which wraps a SharedPreferences: SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences...
在Android开发中,偏好设置(Preferences)是一种常用的方法,用于保存和管理用户的个性化设置或应用配置数据。这些设置通常是以键值对的形式存在,便于读取和修改。本篇文章将深入探讨Android的偏好设置,包括基本...
在实际开发中,我们经常会在 `Activity` 或 `Fragment` 中使用 `onCreatePreferences()` 或 `onCreatePreferencesScreen()` 来创建一个设置界面,这个界面由一系列的 `Preference` 类(如 `CheckBoxPreference`, `...
在Android开发中,数据存储是不可或缺的一部分,而Preferences则是Android提供的一种轻量级的数据存储机制,主要用于存储用户的一些偏好设置或者简单数据。Preferences通常用于保存应用程序中的键值对,类似于桌面...
preferences-helper SharePreferences is very popular with any project and all most all project has SharePreferences for saving data. This library will help you faster in configuration and use ...
总结,Preference是Android开发中的一个强大工具,通过它可以快速构建出美观且易于使用的设置界面。理解并熟练运用Preference的使用、监听事件以及数据持久化,能够极大地提高开发效率。通过自定义Preference,...
Kotlin Android Library, that makes preference usage simple and fun. KotlinPreferences now have a brother. With KotlinPreferences, you can define different preference fields this way: var ...