当前位置: 代码迷 >> Android >> Android Preferences保留数据的简单实例
  详细解决方案

Android Preferences保留数据的简单实例

热度:75   发布时间:2016-05-01 20:07:42.0
Android Preferences保存数据的简单实例

???? Shared Preferences?类似于我们经常使用ini配置文件,用来保存应用程序的一些属性设置,在Android平台常用于存储较简单的参数设置。例如,保存上一次用户所做的修改或者自定义参数设定,当再次启动程序后依然保持原有的设置,类似于我们常用的eclipse配置文件。

????? 如何使用Shared Preferences,我们可以通过下面的例子来了解:

package com.liyf.android.preferences;import android.app.Activity;import android.content.SharedPreferences;import android.os.Bundle;import android.view.KeyEvent;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;public class MyPreferencesActivity extends Activity {	private MIDIPlayer mPlayer = null;	private boolean mbMusic = false;	private TextView mTextView = null;	private Button mPlayButton = null;	private Button mStopButton = null;	    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                // 初始化        mTextView = (TextView) findViewById(R.id.TextView01);        mPlayButton = (Button) findViewById(R.id.play);        mStopButton = (Button) findViewById(R.id.stop);                mPlayer = new MIDIPlayer(this);                // 装载数据,取得活动的Preferences对象        SharedPreferences settings = getPreferences(Activity.MODE_PRIVATE);                //从Preferences获取值        mbMusic = settings.getBoolean("bmusic", false);                if(mbMusic) {        	mTextView.setText("当前音乐状态:开");        	mbMusic = true;        	mPlayer.playMusic();        } else {        	mTextView.setText("当前音乐状态:关");        }                // 播放按钮事件        mPlayButton.setOnClickListener(new OnClickListener() {						@Override			public void onClick(View v) {				if(mbMusic)  // 如果已经是播放状态就返回,不是则播放音乐				{					return;				} else 				{					mbMusic = true;					mPlayer.playMusic();					mTextView.setText("当前音乐状态:开");				}			}		});                mStopButton.setOnClickListener(new OnClickListener() {						@Override			public void onClick(View v) {				if(!mbMusic)				{					return;				} else 				{					mbMusic = false;					mPlayer.stopMusic();					mTextView.setText("当前音乐状态:关");				}			}		});    }	/**	 * 按钮离开的事件,关闭程序时保留数据到Preferences	 */	@Override	public boolean onKeyUp(int keyCode, KeyEvent event) {		// TODO Auto-generated method stub		if (keyCode == KeyEvent.KEYCODE_BACK)		{			// 得到SharedPreferences对象			SharedPreferences uiState = getPreferences(0);			// 取得修改的对象			SharedPreferences.Editor editor = uiState.edit();			// 写入值			editor.putBoolean("bmusic", mbMusic);						// 提交			editor.commit();						if(mbMusic)			{				mPlayer.stopMusic();			}		}		return super.onKeyUp(keyCode, event);	}}

?

package com.liyf.android.preferences;import java.io.IOException;import android.content.Context;import android.media.MediaPlayer;public class MIDIPlayer {	public MediaPlayer playerMusic = null;	private Context mContext = null;		public MIDIPlayer(Context context) {		mContext = context;	}		/**	 * 播放音乐	 */	public void playMusic() {		// 装载资源中的音乐		playerMusic = MediaPlayer.create(mContext, R.raw.start);				// 设置是否循环播放		playerMusic.setLooping(true);		try {			playerMusic.prepare();		} catch (IllegalStateException e) {			e.printStackTrace();		} catch (IOException e) {			e.printStackTrace();		}		playerMusic.start();	}		/**	 * 关闭音乐	 */	public void stopMusic() {		if(playerMusic != null) {			playerMusic.stop();			playerMusic.release();		}	}}

?

?

显示效果:

播放音乐的状态

?

关闭音乐的状态

?

演示以上例子,我们可以看到,每次退出应用程序后再打开,会保存退出前的状态。实例非常简单,所以也不作多的解释。

?

  相关解决方案