当前位置: 代码迷 >> Android >> Android SharedPreferences施用解析
  详细解决方案

Android SharedPreferences施用解析

热度:51   发布时间:2016-05-01 19:31:38.0
Android SharedPreferences应用解析

?在任何软件中,数据存储都是非常重要的,一定程度上来说它是软件的一个中心点,那今天我们就来看其中的一种数据存储方式: 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);    }

?

  相关解决方案