android中sharedPreferences的用法

来源:互联网 发布:油性染料 淘宝 编辑:程序博客网 时间:2024/06/10 20:01

SharedPreferences介绍:

做软件开发应该都知道,很多软件会有配置文件,里面存放这程序运行当中的各个属性值,由于其配置信息并不多,如果采用数据库来存放并不划算,因为数据库连接跟操作等耗时大大影响了程序的效率,因此我们使用键值这种一一对应的关系来存放这些配置信息。SharedPreferences正是Android中用于实现这中存储方式的技术。

SharedPreferences的使用非常简单,能够轻松的存放数据和读取数据。SharedPreferences只能保存简单类型的数据,例如,String、int等。一般会将复杂类型的数据转换成Base64编码,然后将转换后的数据以字符串的形式保存在 XML文件中,再用SharedPreferences保存。

使用SharedPreferences保存key-value对的步骤如下:

  (1)使用Activity类的getSharedPreferences方法获得SharedPreferences对象,其中存储key-value的文件的名称由getSharedPreferences方法的第一个参数指定。
  (2)使用SharedPreferences接口的edit获得SharedPreferences.Editor对象。
  (3)通过SharedPreferences.Editor接口的putXxx方法保存key-value对。其中Xxx表示不同的数据类型。例如:字符串类型的value需要用putString方法。
  (4)通过SharedPreferences.Editor接口的commit方法保存key-value对。commit方法相当于数据库事务中的提交(commit)操作。
A. 具体代码的书写流程为:
1、打开Preferences,名称为setting,如果存在则打开它,否则创建新的Preferences
SharedPreferences settings = getSharedPreferences(“setting”, 0);
2、让setting处于编辑状态
SharedPreferences.Editor editor = settings.edit();
3、存放数据
editor.putString(“name”,”ATAAW”);
editor.putString(“URL”,”ATAAW.COM”);
4、完成提交
editor.commit();
B、读取数据信息
1、获取Preferences
SharedPreferences settings = getSharedPreferences(“setting”, 0);
2、取出数据
String name = settings.getString(“name”,”默认值”);
String url = setting.getString(“URL”,”default”);
以上就是Android中SharedPreferences的使用方法,其中创建的Preferences文件存放位置可以在Eclipse中查看:
DDMS->File Explorer //shared_prefs/setting.xml
完整代码:

package org.crazyit.IO;//首先将数据写入到SharedPreferences中,在读取//无论程序是否关闭,SharedPreferences写入的数据是一直保存的import android.app.Activity;import android.content.SharedPreferences;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends AppCompatActivity {    private EditText editText;    private Button read;    private Button write;    SharedPreferences preferences;    SharedPreferences.Editor editor;     static final String  KEY="MyValue";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        editText=(EditText) findViewById(R.id.editText);        read=(Button) findViewById(R.id.read);        write=(Button) findViewById(R.id.wirte);        //获取preferences        preferences=getPreferences(Activity.MODE_PRIVATE);        //让其处于编辑状态        editor=preferences.edit();        read.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                //第二个参数:如果KEY不存在,获取的默认字符串               String in= preferences.getString(KEY,"当前数值不存在");                Toast.makeText(MainActivity.this,in,Toast.LENGTH_SHORT).show();            }        });        write.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {    //编辑            editor.putString(KEY,editText.getText().toString());                //提交                //如果写入成功返回true,反之返回false               // editor.commit();                if(editor.commit()){                   Toast.makeText(MainActivity.this,"写入成功",Toast.LENGTH_SHORT).show();                }            }        });    }}
0 0
原创粉丝点击