`
ko8e
  • 浏览: 50707 次
  • 性别: Icon_minigender_1
  • 来自: 龙岩
社区版块
存档分类
最新评论

Android数据存储之SharePreference

阅读更多

Shared Preferences:是用来存储“key-value”格式的数据,它是一个轻量级的键值存储机制

只可以用来存储基本的数据类型。

1.主要是针对系统配置信息的保存如给程序界面设置了音效,想在下一次启动程序时还能使用上次设置的音效。

 

Activity:

package com.ko8e;

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.KeyEvent;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.TextView;
import android.widget.CompoundButton.OnCheckedChangeListener;

public class MyActivity extends Activity {
    /** Called when the activity is first created. */
    private TextView view = null;
    private CheckBox checkbox = null;

    private MIDIPlayer PLAYER= null;
    private boolean isplay = false;
    
	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        PLAYER = new MIDIPlayer(this);
        view = (TextView) findViewById(R.id.view);
        checkbox = (CheckBox) findViewById(R.id.checkbox);

        /*
         * 文件创建模式:Activity.MODE_APPEND
         * 如果该文件已经存在,然后将数据写入,而不是抹掉它现有文件的末尾。
         */ 
        /*
         * 文件创建模式:MODE_PRIVATE
         * 默认模式,在那里创建的文件只能由应用程序调用,即为私有的
         */ 
        /*
         * 文件创建模式:Activity.MODE_WORLD_READABLE
         * 允许所有其他应用程序有读取和创建文件的权限。
         */
         /*
         * 文件创建模式:Activity.MODE_WORLD_WRITEABLE
         * 允许所有其他应用程序具有写入、访问和创建的文件权限。
         */
         
        SharedPreferences share = getPreferences(Activity.MODE_PRIVATE);
        isplay = share.getBoolean("isplay", false);
        if(isplay) {
        	view.setText("当前音乐状态: 开");
        	isplay = true;
        	PLAYER.PlayMusic();
        } else {
        	view.setText("当前音乐状态:关");
        }
        
        checkbox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
			@Override
			public void onCheckedChanged(CompoundButton buttonView,
					boolean isChecked) {
				if(isChecked) {
					view.setText("当前音乐状态: 开");
		        	isplay = true;
		        	PLAYER.PlayMusic();
				} else {
					view.setText("当前音乐状态:关");
					isplay = false;
					PLAYER.FreeMusic();
				}
			}
        });
    }

	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		
		if(keyCode==KeyEvent.KEYCODE_BACK){
			 SharedPreferences uiState=getPreferences(0);
			 SharedPreferences.Editor editor=uiState.edit();
			 editor.putBoolean("isplay", isplay);
			 editor.commit();
			 if(isplay)
			 {
			 PLAYER.FreeMusic();
			 }
			 this.finish();
			 return true;
			 }
		return super.onKeyDown(keyCode, event);
	}

	@Override
	public boolean onKeyUp(int keyCode, KeyEvent event) {
		return super.onKeyUp(keyCode, event);
	}
}

 

另一个封装类:

package com.ko8e;

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 FreeMusic() {
		if (playerMusic != null) {
			playerMusic.stop();
			playerMusic.release();
		}
	}
}

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
	android:id="@+id/view"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
<CheckBox
	android:id="@+id/checkbox"
	android:layout_width="fill_parent"
	android:layout_height="wrap_content"
	/>    
</LinearLayout>

 

分享到:
评论

相关推荐

    Android 数据存储与数据共享PPT

    (1)熟悉Android系统提供的四种数据存储方式:SharePreference、SQLite、ContentProvider和File (2)学会编写程序使用SQLite数据库存储数据 (3)学会编写程序使用SharedPreference对象存储数据 (4)学会编写...

    四种Android数据存储方式

    SharedPreference是一种轻型的数据存储方式,实际上是基于XML文件存储的“key-value”键值对数据。通常用来存储程序的一些配置信息。其存储在“data/data/程序包名/shared_prefs目录下。 SharedPreference本身

    sharepreference

    Android平台给我们提供了一个SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。使用SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data/&lt;package name&gt;/...

    详解Android开发数据持久化之文件存储(附源码)

    其实我们在社交网络上面所发出的任何信息, 都希望能够保留下来. 那么如何实现呢? 数据持久化 数据持久化, 就是将内存中的瞬时数据保存在存储设备中...文件存储是android中最基本的一种数据存储方式, 它不对存储的内容进

    androiddemo

    android SharePreference 存储数据Demo

    Android四种数据存储的应用方式

    Android四种数据存储的应用方式  作为一个完整的应用程序,数据存储操作是必不可少的。因此,Android系统一共提供了四种数据存储方式。分别是:SharePreference、文件存储、SQLite、 Content Provider。对这几种...

    android开发入门与实战(下)

    8.1 Android数据存储概述 8.2 轻轻地我保护——SharedPreferences存储 8.3 谁的文件,谁主宰——文件存储 8.4 打造自己的数据库存储——SQLite存储方式 8.4.1 Android中对数据库操作 8.4.2 完整地操作数据库——日记...

    sharepreference工具类

    很好用的工具类,使用sharepreference存储数据,节省程序员开发时间

    android开发入门与实战(上)

    8.1 Android数据存储概述 8.2 轻轻地我保护——SharedPreferences存储 8.3 谁的文件,谁主宰——文件存储 8.4 打造自己的数据库存储——SQLite存储方式 8.4.1 Android中对数据库操作 8.4.2 完整地操作数据库——日记...

    《Google Android开发入门与实战》.pdf

    8.1 android数据存储概述 136 8.2 轻轻地我保护——sharedpreferences存储 136 8.3 谁的文件,谁主宰——文件存储 140 8.4 打造自己的数据库存储——sqlite存储方式 141 8.4.1 android中对数据库操作 ...

    Google.Android开发入门与实战

    8.1 Android数据存储概述 8.2 轻轻地我保护——SharedPreferences存储 8.3 谁的文件,谁主宰——文件存储 8.4 打造自己的数据库存储——SQLite存储方式 8.4.1 Android中对数据库操作 8.4.2 完整地操作数据库——日记...

    SharePreference音本应用

    通过SharedPreferences存储文件方式存储写入数据的次数,可以通过读取按键显示写入的次数。

    android开发入门教程

    15.2.3 在线播放器数据存储设计 15.3 在线播放器的编程实现 15.3.1 申请APIKey 15.3.2 基础功能实现 15.3.3 实现Activity 15.3.4 实现Service 15.3.5 后续开发展望 15.4 在线音乐播放器应用演示 15.5 在线音乐播放器...

    Google Android开发入门与实战的代码

    8.1 Android数据存储概述 136 8.2 轻轻地我保护——SharedPreferences存储 136 8.3 谁的文件,谁主宰——文件存储 140 8.4 打造自己的数据库存储——SQLite存储方式 141 8.4.1 Android中对数据库操作 ...

    详解Android中一些SQLite的增删改查操作

    Android本身提供了四种数据存储方式。包括:SharePreference,SQLite,Content Provider,File。 在Android,数据都是么私有的,要实现数据共享,正确方式是使用Content Provider。 SQLite: SQLite是一个轻量级的...

    工作报告之基于android开题报告.docx

    (2)手机终端后台功能模块设计: 播放器具体功能实现、音乐文件数据存储功能实现等详细功能实现。 音乐播放器系统实现了播放器的基本功能:播放,暂停、停止、上/下一首、音量调节、歌词显示、播放模式、歌曲搜索...

    Android俄罗斯方块游戏源码

    主要运用Android 四大组件实现完成俄罗斯方块, Bmob服务器实现后台数据,登录信息和游戏排名。sharePreference实现配置信息的储存。Service实现游戏背景音乐,运用fragment实现说明页面,并自定义UI组件实现俄罗斯...

    安卓应用之用户界面编程计算器界面

    数据保存:首先获取SharePreference对象,使用的模式是mode_private模式,获取editor对象,然后通过put函数存储信息,再使用editor commit提交 数据读取:获取SharePreference对象,根据key读取代码显示在页面上 ...

    wp独立存储空间案例

    微软使用了一个叫IsolatedStorageSettings 的类库提供给开发人员快速的使用独立存储保存用户数据的功能,但总体使用感觉来说没有Android 使用的方便,另外Andriod 的类似这种数据存储是暴露给用户的,而Windows ...

Global site tag (gtag.js) - Google Analytics