Android学习 —— 数据的存储与访问方式二: SharedPreferences(偏好参数保存)


SharedPreferences

    主要用于软件配置参数的保存,它是一个轻量级的存储类,特别适用于保存软件配置参数,使用该类保存数据,数据存放的文件类型为XML,文件存放路径:

     /data/data/<package name>/shared_prefs目录下

    因为SharedPreferences背后是使用xml文件保存数据,getSharedPreferences(name,mode)方法的第一个参数用于指定该文件的名称,名称不用带后缀,后缀会由Android自动加上。

    方法的第二个参数指定文件的操作模式,共有四种操作模式,这四种模式前面介绍使用文件方式保存数据时已经讲解过。

    另外Activity还提供了另一个getPreferences(mode)方法操作SharedPreferences,这个方法默认使用当前类不带包名的类名作为文件的名称。


使用SharedPreferences进行数据存取


示例:

获取本地时间,通过SharedPreferences存储,然后从SharedPreferences中取出时间,Toaster在手机屏幕上


Android学习 —— 数据的存储与访问方式二: SharedPreferences(偏好参数保存)_第1张图片

配置文件

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
<TableRow>
    <Button
        android:id="@+id/read"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/btnRead" />
	<Button
        android:id="@+id/write"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/btnWrite" />
</TableRow>
<EditText
    android:id="@+id/edit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
    />
</TableLayout>

MainActivity

import java.text.SimpleDateFormat;
import java.util.Date;

import android.app.Activity;
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;

public class SharePreferencesSampleActivity extends Activity implements OnClickListener{
	private SharedPreferences preferences;
	private Button readBtn, writeBtn;
	private Editor editor;
	private EditText edit;
	
	@Override
	public void onCreate(Bundle savedInstanceState){
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		
		//获取组件
		Button readBtn = (Button) findViewById(R.id.read);
		Button writeBtn = (Button) findViewById(R.id.write);
		edit = (EditText) findViewById(R.id.edit);
		
		//注册监听
		readBtn.setOnClickListener(this);
		writeBtn.setOnClickListener(this);
		
		//获取一个SharedPreferences对象,第一个参数为要生成的文件名,第二个参数为文件模式
		preferences = getSharedPreferences("myPreference", MODE_PRIVATE);
		editor = preferences.edit();//获取编辑器
	}
	
	public void onClick(View v) {
		switch(v.getId()){
		case R.id.write:
			writeInfo();
			break;
		case R.id.read:
			readInfo();
			break;
		}
	}
	//向SharedPreferences中写入信息
	public void writeInfo(){
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
		editor.putString("time", sdf.format(new Date()));
		editor.putInt("random", (int)(Math.random()*100));
		editor.commit();
	}
	//读取SharedPreferences中的信息
	private void readInfo(){
		SharedPreferences preferences = getSharedPreferences("myPreference", MODE_PRIVATE);
		String date = preferences.getString("time", null);
		int radom = preferences.getInt("random", 0);
		edit.setText(date + "  " + radom );
		Toast.makeText(SharePreferencesSampleActivity.this, "时间为:" + date + " 随机数:" + radom , Toast.LENGTH_SHORT).show();
	}
}


你可能感兴趣的:(Android学习 —— 数据的存储与访问方式二: SharedPreferences(偏好参数保存))