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文件进行读写的情况。

三、源码:

原文地址:https://www.cnblogs.com/ruigege0000/p/13551547.html