欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android 之 SharedPreferences存储数据

程序员文章站 2022-05-16 22:38:29
...
存储数据:

1、SharedPreferences:
SharedPreferences 是一种轻型的数据存储方式,本质是基于XML文件存储key-value键值对
数据;
用途:通常用来存储一些简单的配置信息,以及应用本身的参数设置;
存储位置:/data/data/包名/shared_prefs目录下;
注意:SharedPreferences 对象本身只能获取数据而不支持存储和修改数据,
存储修改数据是通过编辑器(Editor)对象来实现的;

使用SharedPreferences 的步骤为:
* 通过上下文获取SharedPreferences对象
* 利用edit();方法来获取Eidtor对象
* 通过Editor对象存储key-value键值对数据;
* 通过commit();方法提交数据;



案例:通过SharedPreferences存储用于输入的信息;
代码如下:

package com.example.datasave;

import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

/* SharedPreferences 存储数据测试  */
public class MainActivity extends Activity {

	/* 声明组建对象  */
	private Button btnShow ;
	private EditText name,pwd,age;
	
	/* 声明SharedPreferences 对象 */
	SharedPreferences sp ;
	
	/*  通过findViewById();方法获取组建对象  */
	public void init(){
		name = (EditText) findViewById(R.id.name);
		pwd = (EditText) findViewById(R.id.pwd);
		age = (EditText) findViewById(R.id.age);
		
		btnShow = (Button) findViewById(R.id.btnShow);
	}
	
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		
		/* 初始化组建对象  ,调用init()方法*/
		init();
		
		/* 设置事件监听 */
		btnShow.setOnClickListener(listener);
		
	}

	/* 编写事件,OnClickListener , 点击的时候保存用户输入的数据 */
	OnClickListener listener = new OnClickListener() {
		
		public void onClick(View v) {
			
			/* 获取SharedPreferences的对象 */
			SharedPreferences sp = getSharedPreferences("userInfo", Context.MODE_PRIVATE);
			
			/* 获取Eidtor对象, 通过eidt();方法 */
			Editor editor = sp.edit();
			
			/* 通过Eidtor对象存储key-value数据 */
			editor.putString("name", name.getText().toString());
			editor.putString("pwd", pwd.getText().toString());
			editor.putInt("age", Integer.parseInt(age.getText().toString()));
			editor.putBoolean("bool", true);
			
			/* commit(),提交数据 */
			editor.commit();
			
			Toast.makeText(MainActivity.this, "存储数据成功", 1000).show();
			
			
		}
	};


}


小贴士:
* SharedPreferences 只能存储boolean int float long String 五种数据类型;
* 存储数据的数据信息是保存在内存中在;
*SharedPreferences sp = getSharedPreferences("userInfo", Context.MODE_PRIVATE);
参数说明:1、保存数据的文件名  2:添加数据的模式,当前模式为私有,后一次覆盖前一次的数据;