android 数据存储SharedPreferences 学习笔记

来源:互联网 发布:山西网络教育 编辑:程序博客网 时间:2024/05/22 18:55

今天学习了android数据存储中的SharedPreferences,记录如下:

SharedPreference是一种轻型的数据存储方式,实际上是基于XML文件存储的“key-value”键值对数据。通常用来存储程序的一些配置信息,如音量、是否更新等。其存储在

“data/data/程序包名/shared_prefs目录下。

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

package com.example.shujucunchu;import android.app.Activity;import android.content.Context;import android.content.SharedPreferences;import android.content.SharedPreferences.Editor;import android.content.pm.PackageManager.NameNotFoundException;import android.os.Bundle;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;public class MainActivity extends Activity {private SharedPreferences sharedPreferences;private SharedPreferences publicSharedPreferences;private Editor editor;private Context context;private EditText sharedPreferences_key_et;private EditText sharedPreferences_value_et;private Button sharedPreferences_save_btn;private Button public_sharedPreferences_save_btn;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initData();initCmp();initCmpData();}public void initData(){context = getApplicationContext();/***data/data/<package name>/shared_prefs***//** Context.MODE_PRIVATE: 指定该SharedPreferences数据只能被本应用程序读、写。         Context.MODE_WORLD_READABLE:  指定该SharedPreferences数据能被其他应用程序读,但不能写。         Context.MODE_WORLD_WRITEABLE:  指定该SharedPreferences数据能被其他应用程序读,写*/sharedPreferences = context.getSharedPreferences("user-config", Context.MODE_PRIVATE);publicSharedPreferences = context.getSharedPreferences("public-user-config", Context.MODE_WORLD_WRITEABLE);/** 读写其他应用的SharedPreferences: * ******/try {Context pvCount = createPackageContext("com.tony.app", Context.CONTEXT_IGNORE_SECURITY);SharedPreferences read = pvCount.getSharedPreferences("lock", Context.MODE_WORLD_READABLE);} catch (NameNotFoundException e) {e.printStackTrace();}//这里的com.tony.app就是其他程序的包名}public void initCmp(){sharedPreferences_key_et = (EditText) findViewById(R.id.sharedPreferences_key_et);sharedPreferences_value_et = (EditText) findViewById(R.id.sharedPreferences_value_et);sharedPreferences_save_btn = (Button) findViewById(R.id.sharedPreferences_save_btn);sharedPreferences_save_btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {editor = sharedPreferences.edit();String key = sharedPreferences_key_et.getText().toString();String value = sharedPreferences_value_et.getText().toString();editor.putString(key, value);editor.commit();}});public_sharedPreferences_save_btn = (Button) findViewById(R.id.public_sharedPreferences_save_btn);public_sharedPreferences_save_btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {editor = publicSharedPreferences.edit();String key = sharedPreferences_key_et.getText().toString();String value = sharedPreferences_value_et.getText().toString();editor.putString(key, value);editor.commit();}});}public void initCmpData(){}}


0 0
原创粉丝点击