zoukankan      html  css  js  c++  java
  • 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文件进行读写的情况。

    三、源码:

  • 相关阅读:
    数字系统设计练习(一)—— 闪烁的小灯
    使用matplotlib时pyplot.show()图像不显示
    Linux命令——github篇
    Caffe: Cannot create Cublas handle. Cublas won't be available
    欧拉函数
    Prim最小生成树+优先队列优化
    KMP算法
    克鲁斯卡尔求最小生成树
    C++ 文件输出、输出
    并查集
  • 原文地址:https://www.cnblogs.com/ruigege0000/p/13551547.html
Copyright © 2011-2022 走看看