在任何软件中,数据存储都是非常重要的,一定程度上来说它是软件的一个中心点,那今天我们就来看其中的一种数据存储方式: 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. mybatisplus的坑 insert标签insert into select无参数问题的解决
  2. python起点网月票榜字体反爬案例
  3. Android数据存储--sqlite
  4. Android中使用ormlite实现持久化--HelloOrmLite
  5. Android(安卓)-- SharedPreferences保存基本数据、序列化对象、L
  6. 怎么让android定时关机
  7. Android数据库使用(ORMLite)
  8. Android(三)数据存储之三SQLite嵌入式数据库
  9. [置顶] Android(安卓)操作SQLite数据库(初步)-在程序中删除数据库

随机推荐

  1. 在服务器上使用 gradle 打包 android 源
  2. android与js交互-jsbridge
  3. Android中自定义Dialog样式
  4. android Home键的截获
  5. Android官方入门文档[6]添加Action按钮
  6. Android 编写使用root权限的android应用
  7. android 随手记 遍历文件夹下的文件有多
  8. 开发板部分总结
  9. android SQLite 事物处理
  10. 57.EasyRecyclerViewSidebar