`
zhujianjia
  • 浏览: 484090 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android 数据存储——SharedPreferences,有代码实现,简单易懂

阅读更多

简单的说 SharedPreferences 就是使用键值对的方式将数据存储在一个xml文件中,可以使用getxxx(key,value),setxxx(key,value)方法读写数据。在每个应用程序的
Context中都有SharedPreferences对象,可使用getSharedPreferences()方法得到该实例
这个例程中在DBTest.java 得到SharedPreferences 对象,并写入数据,而在DBTest2.java中取得得到SharedPreferences对象,并读取数据。
在DBTest有一个按钮,点击此按钮进入DBTest2,而在DBTest2中显示SharedPreferences对象取得的数据
在SharedPreferences中是使用键值对(key,value)的方式来存取数据,这些数据是存储在一个xml文件中,这个xml文件是在data/data/程序包名/shared_prefs/文件下的



详细实现看代码:

public class DBTest extends Activity {

private SharedPreferences sp;

private TextView tv;

private Button btn;

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

//每个应用程序的Context中都有SharedPreferences对象,获得SharedPreferences,并指定名称为demo,访问权限为本应用程序可访问

//Context.MODE_READABLE,其他应用程序可读

//Context.MODE_WRITEABLE,其他应用程序可写权限

//Context.MODE_PRIVATE只有当前程序可访问
        sp = this.getSharedPreferences("demo", Context.MODE_PRIVATE);
        //使用SharedPreferences的内部类Editor对象对demo.xml文件进行编辑
        SharedPreferences.Editor editor = sp.edit();
        //编辑数据
        editor.putString("name", "zhangsan");
        editor.putInt("id", 123);
        editor.putString("class", "dasan");
        editor.commit();//最后要commit否则,修改数据无效
      

        tv = (TextView)findViewById(R.id.tv);
        tv.setText(sp.toString());//此行纯属测试,无意义
        btn = (Button)findViewById(R.id.btn);
        btn.setOnClickListener(new View.OnClickListener() {



@Override

public void onClick(View v) {

startActivity(new Intent(DBTest.this,DBTest2.class));

}

});
    }
}

 

public class DBTest2 extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

TextView tv = new TextView(this);

SharedPreferences sp = this.getSharedPreferences("demo", Context.MODE_PRIVATE);//同样的方法,得到SharedPreferences实例

SharedPreferences.Editor editor = sp.edit();

editor.putInt("fenshu", 96);//可以对SharedPreferences对象进行修改

editor.commit();//一定要commit,否则无法读取

//显示数据

tv.setText("id:"+sp.getInt("id", 0)+" name:"+sp.getString("name", null)+

" class:"+sp.getString("class", null)+" fenshu:"+sp.getInt("fenshu", 0));

setContentView(tv);

}
}

 

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<int name="id" value="123" />
<string name="class">dasan</string>
<int name="fenshu" value="96" />
<string name="name">zhangsan</string>
</map>

 

该文件是存储在data/data/me.android.dbtest/shared_prefs/demo.xml,me.android.dbtest是本应用程序的包名。在eclipse中运行本程序后,
打开File Explorer
(可在Window->show view->others->general->file explorer打开)并可以得到此xml文件

 

  • 大小: 19.5 KB
  • 大小: 15.2 KB
分享到:
评论

相关推荐

    第一行代码Android学习练习代码7

    `SharedPreferences` 是Android中用于存储轻量级数据的一个简单接口,通常用于保存用户设置或应用的状态。在这个测试项目中,学习者可能需要实现读写SharedPreferences,包括设置键值对,获取已存储的数据,以及...

    第一行代码——Android(第3版)-思维导图.pdf

    5. 数据存储:数据持久化是应用开发中的重要环节,Android提供了SharedPreferences、SQLite、Room等数据存储解决方案,帮助开发者在设备上存储和访问数据。 6. 网络通信:网络请求是移动应用中不可或缺的功能。...

    Android源码——豆瓣手机客户端源码.zip

    《深入剖析Android源码——以豆瓣手机客户端为例》 Android作为全球最受欢迎的移动操作系统之一,其源码的深度研究对于开发者来说是提升技术水平的重要途径。豆瓣手机客户端作为一款深受用户喜爱的应用,其源码同样...

    Android中文翻译组——Android中文API合集(3).zip_android_手册

    4. **数据存储**:Android提供了多种数据存储方式,包括SharedPreferences用于保存轻量级偏好设置,SQLite数据库进行结构化数据存储,File I/O操作本地文件,以及ContentProvider用于跨应用共享数据。 5. **网络...

    Android中文翻译组_Android中文API合集(4).zip_android_android 翻译_android开发

    4. **数据存储**: SQLite数据库用于本地持久化数据,ContentProvider提供了一种标准的方式来访问和共享数据,SharedPreferences则用于保存简单的键值对数据,适合存储用户偏好设置。 5. **多媒体**: Android支持...

    android 从浅到深

    同时,你还会了解到如何使用SharedPreferences和SQLite数据库进行数据存储。 对于网络编程,Android提供了HttpURLConnection、OkHttp等API,以及Volley、Retrofit等第三方库,它们可以帮助开发者实现网络请求和数据...

    android 内部 培训教材

    5. **数据存储**:介绍SharedPreferences、SQLite数据库、文件系统以及ContentProvider等数据存储方式,并通过实例讲解其应用场景。 6. **多媒体支持**:讲解如何处理音频、视频和图像,包括多媒体文件的播放、捕获...

    简易淘宝手机版源码

    5. **数据存储**:运用SharedPreferences、SQLite数据库等方式在本地保存用户偏好设置或临时数据。 6. **异步处理**:使用AsyncTask、IntentService或现代的Coroutines进行后台任务处理,避免阻塞主线程。 7. **...

    android中文教程.rar

    5. 数据存储:学习如何使用SQLite数据库存储数据,以及如何使用SharedPreferences、文件存储等其他方式。 6. 网络通信:理解Android中的网络编程,包括HTTP请求、HTTPS安全通信、JSON解析等,同时,还会介绍如何...

    Beginning Android应用开发-英文版

    5. **数据存储**:了解如何使用SharedPreferences、SQLite数据库和文件系统来保存应用数据。 6. **Intent和Intent Filter**:Intent是Android中用于组件间通信的主要机制。通过Intent,你可以启动其他活动,传递...

    Android初学者起步书籍(英文原版,浅显易读,附带源码)

    同时,还会涉及数据存储,如SQLite数据库的使用,以及SharedPreferences和文件系统的操作,这些都是Android应用中常见的数据管理方式。 在进阶部分,书中可能会讲解服务(Service)的使用,这是在后台运行的组件,...

    Hello.Android(2009.5第二版)

    4. **数据存储**:探讨SQLite数据库的使用,以及如何在Android应用中存储和检索数据,还可能涉及SharedPreferences和内部/外部存储等其他数据存储选项。 5. **网络与多媒体**:讲解如何在Android应用中实现网络通信...

    Android中文版API文档

    6. **数据持久化**:Android提供了SQLite数据库来存储结构化数据,同时还有SharedPreferences用于保存简单的键值对,以及File I/O接口进行文件操作。 7. **网络编程**:Android SDK包含HttpURLConnection和OkHttp等...

    Android Application Development All-in-One For Dummies

    - **数据存储**:探讨如何在Android应用中实现数据存储,包括使用SQLite数据库、SharedPreferences以及文件系统等方法。 - **网络编程**:介绍如何利用Android API进行HTTP请求,获取网络资源,以及处理JSON或XML...

    AndroidBox0.5

    在数据存储方面,Android提供了SQLite数据库、SharedPreferences、ContentResolver等机制。AndroidBox0.5对此有详尽的解释,包括如何创建数据库、操作数据、使用SharedPreferences保存轻量级数据,以及通过...

Global site tag (gtag.js) - Google Analytics