`
ko8e
  • 浏览: 52162 次
  • 性别: 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>

 

分享到:
评论

相关推荐

    android4.0跨应用共享数据通过sharepreference

    SharePreferences是Android提供的一种轻量级的数据存储机制,主要用于存储一些简单的键值对数据,如布尔值、整型、浮点型、字符串等。在本场景中,我们将探讨如何在Android 4.0中通过SharedPreferences实现跨应用...

    android跨应用sharepreference数据共享

    SharedPreferences是Android提供的一种轻量级的数据存储机制,它允许我们保存和读取简单的键值对数据,如字符串、整型、布尔值等。 首先,了解SharedPreferences的工作原理。SharedPreferences是基于XML文件存储的...

    Android 序列化对象存储到sharepreference

    在Android开发中,序列化(Serialization)是一种将对象转换为可传输或存储格式的过程,而SharedPreferences则是一个轻量级的数据存储机制,常用于保存应用程序的简单配置数据。本篇文章将详细探讨如何将Android序列...

    android_save_data.rar_android_android 网络_sharepreference

    在Android应用开发中,数据保存是至关重要的环节,它涉及到应用程序的状态维护、用户偏好设置以及持久化数据存储。本教程将深入探讨Android程序中的三种主要数据存储方式:SQLite数据库、网络存储(HTTP-UPDATE)...

    SharePreference与File详解

    `SharePreference`是Android提供的一种轻量级的数据存储机制,主要用于存储简单的键值对数据,如布尔值、整型、浮点型、字符串等。这些数据通常以XML格式保存在设备的沙盒文件系统中,易于读写且持久化。 #### (1) ...

    SharePreference

    SharePreference是Android开发中...综上所述,SharePreference是Android开发中处理轻量级数据存储的有效工具,它提供了一种简单而直接的方式来保存和读取应用的配置和用户设置。合理利用,可以大大提高应用的用户体验。

    Android存储字符串数据到txt文件

    2. 需要将数据存储到文件中,以便于数据的持久化和管理。 为了满足这些需求,我们可以使用FileUtils工具类来存储字符串数据到txt文件。下面是FileUtils工具类的实现代码: ```java public class FileUtils { // ...

    Android 数据存储与数据共享PPT

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

    四种Android数据存储方式

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

    sharepreference删除文件数据不会丢失.rar

    在Android开发中,SharedPreferences是用于存储轻量级数据的一个重要工具。它提供了一种简单的方式来保存和检索应用程序的配置设置或任何其他简单的键值对数据。这个名为"sharepreference删除文件数据不会丢失.rar...

    Android多媒体开发07-数据存储.ppt

    综上所述,Android的SharePreference和SQLite是两种常见的数据存储方式,前者适用于轻量级偏好设置,后者适用于结构化的数据存储。开发者可以根据实际需求选择合适的数据存储方案。此外,还有File存储(直接操作文件...

    Eclipse编写的Android SharePreference应用实例

    在Android开发中,SharePreferences是Android提供的一种轻量级的数据存储方式,用于保存应用程序的简单配置数据,如用户设置、应用状态等。本教程将基于Eclipse IDE V4.2.0,通过一个实例详细讲解如何使用...

    sharepreference

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

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

    Android系统提供了四种数据存储方式,即SharePreference、文件存储、SQLite和Content Provider。每种方式都有其特点和应用场景。 SharePreference SharePreference是一种轻量级的数据存储方式,适用于存储少量的...

    Android中Preference的使用以及监听事件分析

    其中,`key`属性用于唯一标识每个Preference,`title`和`summary`分别表示标题和摘要,`inputType`定义EditTextPreference的输入类型,`entries`和`entryValues`用于ListPreference的显示和存储值。 三、Preference...

    SharePreference音本应用

    在Android开发中,数据存储是不可或缺的一部分,而`SharedPreferences`是一种轻量级的数据存储机制,常用于保存应用程序中的配置信息或者轻量级的数据。在这个"SharePreference音本应用"中,我们将探讨如何利用`...

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

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

    Sharepreference

    在Android开发中,`SharedPreferences` 是一个非常重要的轻量级数据存储机制,它主要用于存储一些简单的配置信息,如用户设置、应用状态等。这个“Sharepreference”主题涉及到的是对`SharedPreferences`进行代码...

Global site tag (gtag.js) - Google Analytics