SharedPrefenences的使用

SharedPrefenences是什么

SharedPrefenences是一种轻型的数据存储方式,他的本质是基于XML文件存储Ket-Value键值对数据,通常用来存储一些简单的配置信息

存储位置在/data/data/<包名>/shared_prefs目录下。

SharedPrefenences对象本身只能获取数据而不支持存储和修改,存储修改要通过Editor对象实现。

SharedPrefenences的优势

SharedPrefenences与SQLite数据库相比,免去了创建数据库,创建表,写SQL语句等操作,更加易用。

支持的类型数据

  • boolean
  • int
  • float
  • long
  • String

但是无法进行条件查询。

SharedPrefenences的代码实现

Activity:

package com.zsz.develop.sharedpreferencestest;

import android.content.SharedPreferences;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;


public class MainActivity extends ActionBarActivity {

private EditText etData;
private  SharedPreferences sharedPreferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    etData= (EditText) findViewById(R.id.etData);
    sharedPreferences=getSharedPreferences("sharedPrefXML",MODE_PRIVATE);
    //要编辑修改sharedPreferences就要使用Editor来修改
   final SharedPreferences.Editor editor= sharedPreferences.edit();

    //读取SharedPreferences数据
    findViewById(R.id.btnRead).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            //得到sharedPreferences的值,传进去第一个参数是键,第二个是如果为空返回的值。
          String value=  sharedPreferences.getString("key-name","当前数值不存在");
            Toast.makeText(getApplicationContext(),value,Toast.LENGTH_SHORT).show();
        }
    });

    //写入SharedPreferences数据
    findViewById(R.id.btnWrite).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            //要修改存储什么类型数据就put什么类型,这里传进去的是Key-Value
            editor.putString("key-name",etData.getText().toString().trim());
            //commit提交数据,commit返回值为boolean。进行判断
          if (editor.commit()) {
              Toast.makeText(getApplicationContext(), "写入成功", Toast.LENGTH_SHORT).show();
          }
        }
    });



}



}

layout档:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:id="@+id/etData"
   />
<Button
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/btnRead"
    android:text="读取数据"
    />

<Button
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/btnWrite"
    android:text="写入数据"
    />
</LinearLayout>

SharedPrefenences非常方便的使用。