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非常方便的使用。