在任何软件中,数据存储都是非常重要的,一定程度上来说它是软件的一个中心点,那今天我们就来看其中的一种数据存储方式: Shared Preferences ,它用来存储“key-value paires” 格式的数据,它是一个轻量级的键值存储机制,只可以存储基本数据类型。

   在Android平台上,我们通过getPreferences()方法来获的Preferences对象。通过 "SharedPreferences.Editor editor = State.editor();"取得编辑对象,然后通过“editor.put...()”方法去添加数据,通过commit()方法来保存这些数据,如果不需要与其它模块共享数据,可以使用Activity.getPreferences()方法来保持数据的私有。但是我们不能用这种方法来是多个程序来共享这些数据

下面我们通过一个简单的程序来演示一下:

 package com.preferences;import android.app.Activity;import android.content.SharedPreferences;import android.os.Bundle;import android.view.KeyEvent;import android.widget.TextView;public class Activity01 extends Activity {     private boolean mbMusic = false;   private TextView mTextView = null;   private TextView mTextView1 = null;   private String text = "ni shishui";    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        mTextView = (TextView) this.findViewById(R.id.textView1);        mTextView1 = (TextView) this.findViewById(R.id.textView2);     //得到当前活动的Preferences 对象       SharedPreferences settings = getPreferences(Activity.MODE_PRIVATE);      //取得里面的数据       mbMusic = settings.getBoolean("bmusic", false);       text = settings.getString("string", text);        if(mbMusic)        {    //用来显示数据         mTextView.setText("当前的音乐状态:开");         mTextView1.setText(text);         mbMusic = true;         //mediaPlayer.start();        }else{         mTextView.setText("当前音乐状态:关");          mTextView1.setText(text);        }          }    public boolean onKeyUp(int keyCode,KeyEvent event)    {     switch(keyCode)     {    // 用来改变 mTextView的数据     case KeyEvent.KEYCODE_DPAD_UP:      mTextView.setText("当前音乐状态:开");      mbMusic = true;      //mediaPlayer.start();      break;     case KeyEvent.KEYCODE_DPAD_DOWN:      mTextView.setText("当前音乐状态:关");      mbMusic= false;        // mediaPlayer.stop();         //mediaPlayer.release();      break;     }     return true;    }    public boolean onKeyDown(int keyCode,KeyEvent event)    {     if(keyCode == KeyEvent.KEYCODE_BACK){    // 用来获得当前活动的Preferences      SharedPreferences State = getPreferences(0);    //取得编辑对象      SharedPreferences.Editor editor = State.edit();     // 编辑string类型的数据      editor.putString("string", "你爸是**呀?");     //编辑boolean类型的数据      editor.putBoolean("bmusic", mbMusic);     //最后用commit()方法来保存编辑的数据      editor.commit();      //结束程序      this.finish();//可以不用写return      return true;     } //这个必须写 但可以写成return true;不受影响     return super.onKeyDown(keyCode, event);    }

 

更多相关文章

  1. Android数据存储--sqlite
  2. Android -- SharedPreferences保存基本数据、序列化对象、List数
  3. Android数据库使用(ORMLite)
  4. Android(三)数据存储之三SQLite嵌入式数据库
  5. [置顶] Android 操作SQLite数据库(初步)-在程序中删除数据库
  6. Android 传输数据时Base64编码算法详解
  7. Android SQLite数据库 《第一行代码》

随机推荐

  1. Python英语-Issue02
  2. Matplotlib小册子:饼图概览
  3. Python英语 - Issue12
  4. Python英语-Issue03
  5. 3天破9亿!上万条评论解读《西虹市首富》是
  6. 2021年春招,Java后端最全面试攻略,吃透25个
  7. Pandas小册子:根据条件创建新的列
  8. 在pfSense中强制使用Pi-hole过滤广告
  9. Python英语-Issue06
  10. 彻底解决基于Debian发行系统的vim鼠标模