Android连载30-SharedPreference存储

一、读取文件

1.读取文件

  • 我们的APP在重新启动程序的时候EditText能够从系统中获取数据,修改MainActivity中的代码
public class MainActivity extends Activity {
	
	private EditText edit;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
      ...........................
		String inputText = load();
		if(!TextUtils.isEmpty(inputText)) {
			edit.setText(inputText);
			edit.setSelection(inputText.length());
			Toast.makeText(this, "Restoring succeeded", Toast.LENGTH_SHORT).show();
		}
	}
	public String load() {
		FileInputStream in = null;
		BufferedReader reader = null;
		StringBuilder content = new StringBuilder();
		try {
			in = openFileInput("data");
			reader = new BufferedReader(new InputStreamReader(in));
			String line = "";
			while((line = reader.readLine()) != null) {
				content.append(line);
			}
		}catch(IOException e) {
			e.printStackTrace();
		}finally {
			if(reader != null) {
				try {
					reader.close();
				}catch(Exception e) {
					e.printStackTrace();
				}
			}
		}
		return content.toString();	
	}
...............................
  • 编辑一个load方法,用于读取app内存储的数据,如果读到的内容不为空,就调用setText方法,把内容放到EditText中,然后调用setSelection方法将输入的光标移动到文本的末尾位置以便于再次输入,然后弹出一个“还原成功”,
  • 注意:判断字符串非空的时候使用了TextUtils.isEmpty()方法,这个方法同时对null和空字符串都进行了判断
    30.1
    30.2
  • 输入一段文字之后,然后点击退出键,再进入这个APP的时候,就会把之前的内容填充进去。
  • 该方法不适合存储复杂的数据,因此我们看一下另一种方法。

二、SharedPreference存储

  • SharedPreferece使用键值对进行存储数据。

1.使用方法

  • 获取SharedPreference对象,android提供了三种方法
    • Context类中的getSharedPreference方法
      • 该类接收两个参数,第一个是指定SharedPreference文件的名称,文件存放于/data/data/<packagename>/shared_prefs/目录下;第二个参数用于指定操作模式,主要由两种模式可以选,MODE_PRIVATE和MODE_PROCESS。第一个是默认操作,和传入0差不多,表示只有当前程序可以对这个SharedPreferece文件进行读写,第二个一般用于会有多个进程中对同一个SharedPreference文件进行读写的情况。

三、源码:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值