Android SharedPreferences存储数据与读取

简介: SharedPreferences为Android五种数据存储的方式之一,其他四种数据存储分别为:

1. 介绍

SharedPreferences为Android五种数据存储的方式之一,其他四种数据存储分别为:

  • 文件存储方式
  • SQLite数据库存储
  • ContentProvider方式
  • 网络存储

2. SharedPreferences存储特点

2.1 存储的所有信息都以键值对“key=value”的形式保存;

2.2 SharedPreferences接口只能保存一些基本的数据类型,如字符串,整型,布尔型等。

3. 具体实现

3.1 存储数据

public class MainActivity extends Activity {  
    private static final String fileName = "sharedfile";//定义保存的文件的名称  
  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
          
        SharedPreferences share = super.getSharedPreferences(fileName, MODE_PRIVATE);//实例化  
        SharedPreferences.Editor editor = share.edit(); //使处于可编辑状态  
        editor.putString("name", "hulu");  
        editor.putString("sex", "man");  
        editor.putInt("age", 22);   //设置保存的数据  
        editor.commit();    //提交数据保存  
    }  
  
}

3.2 取出数据

public class MainActivity extends Activity {  
    private static final String fileName = "sharedfile";// 定义保存的文件的名称  
    private TextView name = null;  
    private TextView sex = null;  
    private TextView age = null;  
  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
  
        name = (TextView) findViewById(R.id.name);  
        sex = (TextView) findViewById(R.id.sex);  
        age = (TextView) findViewById(R.id.age);  
  
        SharedPreferences share = super.getSharedPreferences(fileName,  
                MODE_PRIVATE);  
        name.setText("名字:" + share.getString("name", "没有名字"));// 如果没有值,则显示“没有名字”  
        sex.setText("性别:" + share.getString("sex", "性别不详"));// 如果没有值,则显示“性别不详”  
        age.setText("年龄:" + share.getInt("age", 0));// 如果没有值,则显示默认值0  
    }  
}  

3.3 代码分析

SharedPreferences share = super.getSharedPreferences(name, mode);

3.3.1 name:表示保存到文件的名称;

3.3.2 mode:指定文件的读写方式,其值有三种:

  • MODE_PRIVATE:表示创建的文件只能被一个应用程序调用,或者被具有相同id的应用程序访问;
  • MODE_WORLD_READABLE:允许其他应用程序读取文件(可读);
  • MODE_WORLD_WRITEABLE:允许其他应用程序修改文件(可写);
希望可以帮助大家, 如有问题可加QQ群: 591625129 交流

如果哪里有什么不对或者不足的地方,还望读者多多提意见或建议

如需转载请联系我,经过授权方可转载,谢谢

目录
相关文章
|
18天前
|
消息中间件 网络协议 Java
Android 开发中实现数据传递:广播和Handler
Android 开发中实现数据传递:广播和Handler
16 1
|
2天前
|
JSON Android开发 数据格式
android与Web服务器交互时的cookie使用-兼谈大众点评数据获得(原创)
android与Web服务器交互时的cookie使用-兼谈大众点评数据获得(原创)
11 2
|
4天前
|
Java Linux API
统计android设备的网络数据使用量
统计android设备的网络数据使用量
14 0
|
1天前
|
Android开发 数据库管理
Android如何在Activity和Service之间传递数据
Android如何在Activity和Service之间传递数据
|
2天前
|
XML JSON API
转Android上基于JSON的数据交互应用
转Android上基于JSON的数据交互应用
|
18天前
|
存储 Linux Android开发
Android存储分区与Rockchip平台的分区命名及U-Boot配置
Android存储分区与Rockchip平台的分区命名及U-Boot配置
14 0
|
18天前
|
存储 缓存 安全
Android系统 应用存储路径与权限
Android系统 应用存储路径与权限
14 0
Android系统 应用存储路径与权限
|
25天前
|
Android开发 开发者
Android网络和数据交互: 请解释Android中的AsyncTask的作用。
Android's AsyncTask simplifies asynchronous tasks for brief background work, bridging UI and worker threads. It involves execute() for starting tasks, doInBackground() for background execution, publishProgress() for progress updates, and onPostExecute() for returning results to the main thread.
12 0
|
25天前
|
网络协议 安全 API
Android网络和数据交互: 什么是HTTP和HTTPS?在Android中如何进行网络请求?
HTTP和HTTPS是网络数据传输协议,HTTP基于TCP/IP,简单快速,HTTPS则是加密的HTTP,确保数据安全。在Android中,过去常用HttpURLConnection和HttpClient,但HttpClient自Android 6.0起被移除。现在推荐使用支持TLS、流式上传下载、超时配置等特性的HttpsURLConnection进行网络请求。
14 0
|
1月前
|
JSON 安全 Java
Android网络部分-----网络数据请求、解析
Android网络部分-----网络数据请求、解析
Android网络部分-----网络数据请求、解析