Android数据存储(1)

所有应用程序都必须涉及数据的输入、输出,Android应用也不例外,应用程序的参数设置、程序运行状态数据都需要保存在外部存储器上,这样系统关机之后数据才不会丢失。如果应用程序有少量数据需要存储,那么使用普通文件就可以了;但如果应用程序有大量数据可以存储、访问,就需要借助于数据库了。Android系统内置了SQLite数据库,SQLite数据库是一个真正轻量级的数据库,他没有后台进程,整个数据库就对应于一个文件,这样可以非常方便的在不同设备之间移植。

有些时候,应用程序有少量的数据需要保存,而且这些数据的格式很简单,都是普通的字符串、标量类型的值等,比如应用程序的各种配置信息(如是否打开音效、是否使用振动效果等)、小游戏的玩家积分(如扫雷英雄榜之类的),对于这样数据,android提供了SharedPreferences进行保存。

下面简单讲解一下SharedPreferences,这里简单示范如何向SharedPreferences中写入、读取数据,改程序的界面很简单,提供两个按钮,其中一个用于写入数据;另一个用于读取数据(此处不再给出):

package org.crazyit.io;

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

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

public class MainActivity extends Activity
{
	SharedPreferences preferences;
	SharedPreferences.Editor editor;
	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		// 获取只能被本应用程序读、写的SharedPreferences对象
		preferences = getSharedPreferences("crazyit", MODE_PRIVATE);
		editor = preferences.edit();
		Button read = (Button) findViewById(R.id.read);
		Button write = (Button) findViewById(R.id.write);
		read.setOnClickListener(new OnClickListener()
		{
			@Override
			public void onClick(View arg0)
			{
				// 读取字符串数据
				String time = preferences.getString("time", null);
				// 读取int类型的数据
				int randNum = preferences.getInt("random", 0);
				String result = time == null ? "您暂时还未写入数据" : "写入时间为:"
						+ time + "\n上次生成的随机数为:" + randNum;
				// 使用Toast提示信息
				Toast.makeText(MainActivity.this, result
						, Toast.LENGTH_SHORT).show();
			}
		});
		write.setOnClickListener(new OnClickListener()
		{
			@Override
			public void onClick(View arg0)
			{
				SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 "
						+ "hh:mm:ss");
				// 存入当前时间
				editor.putString("time", sdf.format(new Date()));
				// 存入一个随机数
				editor.putInt("random", (int) (Math.random() * 100));
				// 提交所有存入的数据
				editor.commit();
			}
		});
	}
}



注:由于SharedPreferences不支持date类型的值,故程序使用了SimpleDateFormat将date格式化成字符串后写入。

重要的一点:editor必须提交之后才会存入数据。







  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值