zoukankan      html  css  js  c++  java
  • Android数据存储之SharedPreferences

    SharedPreferences是一种轻型的数据存储方式,基于XML文件存储key-value pairs键值对数据,通常用来存储一些简单的配置信息。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。每一个 SharedPreferences 文件都是由framework管理的并且可以是私有或者可共享的。 

    数据存储

    新建一个Android项目,在MainActivity的onCreate方法中,调用getSharedPreferences方法,需要注意的是,如果已经存在文件则不会新建,如果键值对不存在则会继续添加到里面,如果存在名字相同,值不同则会覆盖原有的值。

            Context context=MainActivity.this;
            SharedPreferences shared=context.getSharedPreferences("Test", MODE_PRIVATE);
            Editor editor=shared.edit();
            editor.putString("Name", "FlyElephant");
            editor.putInt("Age", 24);
            editor.putBoolean("IsMarried", false);
            editor.commit();
    

     存储完之后这个时候之后就发现,文件夹下多了一个Test.xml,全路径应该是data/data/com.example.preference/shared_prefs/Test.xml

    导出之后发现xml中内容为:

    <?xml version='1.0' encoding='utf-8' standalone='yes' ?>
    <map>
    <string name="Name">FlyElephant</string>
    <int name="Age" value="24" />
    <boolean name="IsMarried" value="false" />
    </map>
    

    显示数据

    设置一个按钮点击事件loadData

       public void loadData(View view){
        	SharedPreferences shared=MainActivity.this.getSharedPreferences("Test", MODE_PRIVATE);
            EditText editText=(EditText) findViewById(R.id.edit_sharedName);
            editText.setText(shared.getString("Name", ""));
            EditText editAge=(EditText) findViewById(R.id.edit_sharedAge);
            String ageString=String.valueOf(shared.getInt("Age", 0));
            editAge.setText(ageString);
        }

     数据显示结果:

    删除节点

    点击第二个按钮,执行的事件:

       public void deleteNode(View view) {
        	SharedPreferences shared=MainActivity.this.getSharedPreferences("Test", MODE_PRIVATE);
        	Editor editor=shared.edit();
        	editor.remove("Age");
        	editor.commit();
        	Toast.makeText(MainActivity.this, "删除成功",Toast.LENGTH_SHORT).show();
    	}

    效果如下:

    删除文件

    根据路径,调用一下File就直接删除了这个文件:

        public void deleteFile(View view){
        	String pathString="/data/data/"+getPackageName()+"/shared_prefs";
        	File file=new File(pathString,"Test.xml");
        	Log.i("com.example.preference",pathString);
        	if (file.exists()) {
    			file.delete();
    		}
          	Toast.makeText(MainActivity.this, "文件删除成功",Toast.LENGTH_SHORT).show();
        }
  • 相关阅读:
    【数论】无平方因子的数
    【图论】【二叉树】以先序字符串方式建立二叉树
    Dev-c++使用方法?Dev-c++怎么用?这里都有啦
    【图论】【二叉树】以括号形式输出二叉树
    【NOIP2016普及组】复赛——魔法阵
    【NOIP2016普及组】复赛——海港
    python爬虫——web前端基础(3)
    python爬虫——web前端基础(2)
    python爬虫——web前端基础(1)
    python 合并两个文件并将合并内容保存在另一个文件中
  • 原文地址:https://www.cnblogs.com/xiaofeixiang/p/4044683.html
Copyright © 2011-2022 走看看