Android -- (12) ,数据的存储

本文详细介绍了Android应用中数据的存储方法,包括存储和载入用户配置,内部储存器、SD卡及静态文件的使用,以及创建和操作数据库的步骤,如DBAdapter helper类的创建和数据的增删查改。
摘要由CSDN通过智能技术生成

2013/1/31


一,数据的存储

数据的存储是很重要的,由于某些数据要在未来reuse。所以有必要将数据保存起来。
安卓里面有三种基本保存数据的办法:
(1)shared preferences机制,用来保存一小撮数据。
(2)传统的File System
(3)通过sqlite的支持用DB来存储数据

1.1,存储和载入用户的配置

一般来说,以上三种方法都可以用来存储用户配置,不过后两者明显有点大题小做了。我们可以简单的用SharedPreferences对象来存储一对对的name/value的值,这些值会自动的存到一个xml文件中去。

1.1.1 存储用户配置

首先我们要创建一个xml文件,里面是你想要存储的配置的类型等等等:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
    xmlns:android="http://schemas.android.com/apk/res/android">
    <PreferenceCategory android:title="Category 1">
        <CheckBoxPreference
            android:title="CheckBox"
            android:defaultValue="false"
            android:summary="True Or False"
            android:key="checkboxPref"
            />
    </PreferenceCategory>
    <PreferenceCategory android:title="Category 2">
        <EditTextPreference
            android:summary="ENter a text"
            android:defaultValue="[enter a string here]"
            android:title="Edit text"
            android:key="editTextPref"
            />
       	<RingtonePreference
       	    android:summary="select a ringtone"
       	    android:title="RingTones"
       	    android:key="ringtonepref"
       	    />
       	<PreferenceScreen
       	    android:title="Second Prefercence Screen"
       	    android:summary="Click here to go to second PreScreen"
       	    android:key="Second Pref Sceen"
       	    >
       	<EditTextPreference
       	    android:summary="enter a string"
       	    android:title="Edit text sp"
       	    android:key="secondEditTextPref"
       	    />
       	</PreferenceScreen>
    </PreferenceCategory>
</PreferenceScreen>

通过上面的xml文件,可以看出:
(1)有两个preference categories来为配置分组
(2)两个checkbox--checkboxpref和secondEdittextpref
(3)一个选择ringtone的选项,ringtonepref
(4)另外一个preferenceScreen包含另外一个配置eidtTExt

注意上面每个控件都有一个key的属性,这个属性是用来保存或取出对应的配置信息的关键字。会自动的存储用户选择的配置。

为了让os去展示出配置的页面,我们新建了一个活动,继承于PreferenceActivity:

public class AppPreferenceActivity extends PreferenceActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//---load the preferences from an XML file---
addPreferencesFromResource(R.xml.myapppreferences);
}
}

最后用之前讲过的intent方法来开始新活动:

Intent i = new Intent(“net.learn2develop.AppPreferenceActivity”);
startActivity(i);

注意也要在androidmainfest文件中加入这个活动的相关信息(之前的文章有讲)。这样就可以打开配置页面了。


OK,那么当你打开并且更改了一个配置之后,修改后的信息会自动保存在/data/data/net.learn2develop.UsingPreferences/shared_prefs里面


1.1.2取出用户的配置


--存储了之后读取用户的配置。

假设我们在主活动里面添加几个按钮来进入配置页面和保存读取存储的信息:

 <Button
        android:id="@+id/btnPreferences"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:onClick="onClickLoad"
        android:text="Load Preferences Screen" />

<Button
android:id="@+id/btnDisplayValues"
android:text="Display Preferences Values"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="onClickDisplay"/>
<EditText
android:id="@+id/txtString"
android:layout_width="fill_parent"
android:layout_he
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值