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();
}
}
}
显示效果:
演示以上例子,我们可以看到,每次退出应用程序后再打开,会保存退出前的状态。实例非常简单,所以也不作多的解释。
- 大小: 11.8 KB
- 大小: 11.6 KB
分享到:
相关推荐
Android数据存取之Preferences 这种方式应该是用起来最简单的Android读写外部数据的方法了。他的用法基本上和J2SE(java.util.prefs.Preferences)中的用法一样,以一种简单、 透明的方式来保存一些用户个性化设置的...
Android 使用Shared Preferences进行数据存储-样例,演示如何使用 Shared Preferences 获得数据和保存数据、如何使用getPreferences方法创建文件的模式,以及如何使用getPreferences模拟用户参数设置、查看 ...
Tutorial Android Preferences
android-secure-preferences About This project uses the Encryption class from: http://www.java2s.com/Code/Android/Security/AESEncryption.htm Gives an implementation of SharedPreferences, which encrypts...
安卓 数据存储 Preferences
Compatible with kotlin android and kotlin native for iphone class MyPresenter { val preferences = Preferences() fun start(){ preferences.getString("userName")?.let { view.displayUser(it) } val...
本文实例讲述了Android数据持久化之Preferences机制。分享给大家供大家参考,具体如下: 在Android中,实现数据持久化有五种方式:Preferences,文件File,I/O操作、SQLite数据库,ContentProvider组件。 下面逐个做...
FastSave is An Android library for fast and easy access to Android Shared preferences. It allows you to save any type or list in the sharedpreferences and retrieve it in convenient way. Installation ...
关于android的数据存储-SQLite-ContentProvider-preferences
Preferences主要用于存储和查询简单数据类型的数据,这些简单数据类型包括boolean、int、float、long以及 String 等,存储方式以键值对的形式存放在应用程序私有的文件夹下。 代码片段: public void ...
数据存储SharePreferences在android开发中的应用实例
Reactive SharedPreferences for Android. Usage Create an RxSharedPreferences instance which wraps a SharedPreferences: SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences...
Use of Preferences in Android pdf
提供java方法 和fastJson两种方法来通过ShaerdPreferences保存实体类以及任意类型的数据,经过测试,比较方便
很想做个天气预警的功能, 想用preferences来做界面。 看了很多preferences感觉定制性太差 所以自己做了一个。 应该是不错的demo 定制preferences在preferencesActivity中的布局 和自定义了对话框的布局
android设置一些常用的属性,如ip地址和端口号什么,都是可以用android的Preferences来设置,简单方便。
NULL 博文链接:https://byandby.iteye.com/blog/833292
实验报告评语与评分: 评阅老师签名: 一、实验名称:Android数据存储与IO 二、实验日期:2014/11/13 三、实验目的: 1、掌握SharedPreferences的存储数据的格式及位置,能够读写其他应用程序的Shared Preferences。...
4、配置Android Preferences 5、创建AVD(Android Virtual Devices) ,运行AVD 说明:在写此文前,本机环境已经配置OK了,所以在有些界面可能看不到对应的内容或者内容不对应,但整个过程和步骤是这样 二、详细...