SharedPreferences基本使用(附源码)

除了SQLite数据库外,SharedPreferences也是一种轻型的数据存储方式,它比SQlite使用起来更加的方便,当然它的功能也没有SQlite那么的强大,如果要存储一些简单的键值对数据可以采用此方法.

实现SharedPreferences存储的步骤如下:

1,通过上下文(Context)获取默认SharedPreferences对象

mPreferences = PreferenceManager.getDefaultSharedPreferences(this);


2,通过Editor对象来写入数据

Editor editor =  mPreferences.edit();
editor.putBoolean("Test1", true);
editor.putString("Test2", "This is Test2");
editor.putInt("Test3", 3);
editor.commit();


3,读取保存的数据

mPreferences.getBoolean("Test1", false)

mPreferences.getString("Test2", "No String")

扫描二维码关注公众号,回复: 11120541 查看本文章

mPreferences.getInt("Test3", -1)

如果要读取的键值对不存在,就会返回一个默认设置的值

比如mPreferences.getString("Test2", "No String")返回的是"No String"


除了使用默认的SharedPreferences,还可以定义自己的SharedPreferences

MySP = getSharedPreferences("huahuadashen_SP", Context.MODE_PRIVATE);

写入和读取的操作方式跟上面步骤一样,只是保存的名字不同


下面直接贴代码:

package com.example.mysharedpreferencesactivity;

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

public class MainActivity extends Activity {
	 private SharedPreferences mPreferences;
	 private SharedPreferences MySP;
	 private Button btn1;
	 private Button btn2;
	 private Button btn3;
	 private Button btn4;
	 private Button btn5;
	 
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		//得到自定义的SharedPreferences
		MySP = getSharedPreferences("huahuadashen_SP", Context.MODE_PRIVATE);
		//得到默认的SharedPreferences
		mPreferences = PreferenceManager.getDefaultSharedPreferences(this);
		
		Editor editor =  mPreferences.edit();
		editor.putBoolean("Test1", true);
		editor.putString("Test2", "This is Test2");
		editor.putInt("Test3", 3);
		editor.commit();
		
		btn1 = (Button)findViewById(R.id.BtnTest1);
		btn1.setOnClickListener(new KeyBtnListener());
		btn2 = (Button)findViewById(R.id.BtnTest2);
		btn2.setOnClickListener(new KeyBtnListener());
		btn3 = (Button)findViewById(R.id.BtnTest3);
		btn3.setOnClickListener(new KeyBtnListener());
		btn4 = (Button)findViewById(R.id.BtnTest4);
		btn4.setOnClickListener(new KeyBtnListener());
		btn5 = (Button)findViewById(R.id.BtnTest5);
		btn5.setOnClickListener(new KeyBtnListener());
		
	}
	
	private class KeyBtnListener implements OnClickListener{

		@Override
		public void onClick(View v) {
			int id = v.getId();
			if(id == R.id.BtnTest1)
			{
				if(mPreferences.getBoolean("Test1", false))
				{
					Toast.makeText(MainActivity.this, "Test1 is ture", Toast.LENGTH_SHORT).show();
				}
				else
				{
					Toast.makeText(MainActivity.this, "Test1 is false", Toast.LENGTH_SHORT).show();
				}
			}
			else if(id == R.id.BtnTest2)
			{
				Toast.makeText(MainActivity.this, mPreferences.getString("Test2", "No String"), Toast.LENGTH_SHORT).show();
			}
			else if(id == R.id.BtnTest3)
			{
				Toast.makeText(MainActivity.this, mPreferences.getInt("Test3", -1)+"", Toast.LENGTH_SHORT).show();
			}
			else if(id == R.id.BtnTest4)
			{
            	Editor editor = MySP.edit();
            	editor.putInt("huahuadashen", 123);
            	editor.commit();
            	
            	Toast.makeText(MainActivity.this, "写入成功!", Toast.LENGTH_SHORT).show();
			}
			else if(id == R.id.BtnTest5)
			{
				if(MySP.getInt("huahuadashen", -1) == -1)
				{
					Toast.makeText(MainActivity.this, "没有文件时,默认返回的是-1", Toast.LENGTH_SHORT).show();
				}
				else
				{
					Toast.makeText(MainActivity.this, "得到的值为:"+MySP.getInt("huahuadashen", -1), Toast.LENGTH_SHORT).show();
				}
			}
		}
		
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}



大家把程序运行完后,会在/data/data/com.example.mysharedpreferencesactivity/shared_prefs/目录下保存2个xml文件


一个是默认的xml文件,一个是自定义的xml文件,里面保存的都是键值对

下面是源码连接

点击打开链接

发布了21 篇原创文章 · 获赞 8 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/zhangxuebing2/article/details/12612833
今日推荐