SharedPerferences 保存数据,android提供用于保存简单配置信息,标记,用户数据的一种方式

使用SharedPreferences 保存数据
SharedPreferences 是android提供用于保存简单配置信息,标记,用户数据的一种方式
数据会以一个XML文件的格式存储在应用程序(APP)的私有目录中
(/data/data/package_name/shared_prefs下的.xml文件),该文件只能被本应用访问,所以数据是安全的
我们也不需要考虑同步问题。
1、写入数据:
通过Activity中的getSharedPreferences(name,mode)获取一个SharedPreference对象
再通过SharedPreference对象得到一个SharedPreference.editor对象,再把数据put到editor中,最后要commit提交保存
存储的数据类型:包含基本数据类型和字符串,不支持其它类型
2、读取数据
获取SharedPreference对象后通过getString方法指定key获取
3、清除数据
把shared_prefs下的文件内容清除,可以使用editor.clear方法,清除后文件还在,内容被清除

实例: 在编辑信息时,其它应用被打开后,保存正在编辑的信息,用户返回该应用后可以继续编辑信息:

布局文件配置:

text="信心"
        android:id="@+id/editText_info"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/button"
        android:layout_alignParentTop="true" />

    "wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/editText_msg"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_toLeftOf="@+id/button"
        android:layout_toStartOf="@+id/button" />

    

2.activity中

private TextView textView_info;
    private EditText editText_msg;
    private SharedPreferences sp;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView_info= (TextView) findViewById(R.id.editText_info);
        editText_msg= (EditText) findViewById(R.id.editText_msg);
        sp =getSharedPreferences("msg",MODE_PRIVATE);
    }

    //从shaped_prefs读取数据保存在editView上
    @Override
    protected void onResume() {
        super.onResume();
        String msg = sp.getString("msg", "");
        editText_msg.setText(msg);
    }

    //保存editText上的数据
    @Override
    protected void onPause() {
        super.onPause();
        String msg =editText_msg.getText().toString();
        if(TextUtils.isEmpty(msg)){
            return;   //是为了程序不在往下执行
        }
        SharedPreferences.Editor editor = sp.edit();
        //文件名为msg.xml
        editor.putString("msg",msg);
        editor.commit();
    }

    public void sendClick(View view){
        String msg =editText_msg.getText().toString();
        if(TextUtils.isEmpty(msg)){
            Toast.makeText(MainActivity.this, "msg not null", Toast.LENGTH_SHORT).show();
            return;
        }
        textView_info.append("\n"+msg);
        editText_msg.setText("");
        SharedPreferences.Editor editor = sp.edit();
        editor.clear();  //清除shared_perfs文件的内容
        editor.commit();
    }

小结:
使用SharedPreferences 在项目中可以实现:
1.用户自动登录功能(token(令牌),cookie(小甜点),session(会话–有生命周期))
2.应用程序首次启动的引导页面
3.保存临时数据(发送短信)
4.应用的配置参数(个性化参数)

你可能感兴趣的:(SharedPerferences 保存数据,android提供用于保存简单配置信息,标记,用户数据的一种方式)