• 18.Android之SharedPreferences数据存储学习


    SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的就是一个key-value(键值对)SharedPreferences常用来存储一些轻量级的数据。

    实现SharedPreferences存储的步骤如下:

    (1)获取SharedPreferences对象

    (2)利用edit()方法获取Editor对象。

    (3)通过Editor对象存储key-value键值对数据。

    (4)通过commit()方法提交数据。

    实现代码:

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3               android:layout_width="match_parent"
     4               android:layout_height="match_parent"
     5               android:orientation="vertical">
     6 
     7     <Button
     8         android:id="@+id/btn1"
     9         android:layout_width="wrap_content"
    10         android:layout_height="wrap_content"
    11         android:text="保存SharedPreferences对象数据" />
    12 
    13     <Button
    14         android:id="@+id/btn2"
    15         android:layout_width="wrap_content"
    16         android:layout_height="wrap_content"
    17         android:text="读取SharedPreferences对象数据" />
    18     
    19 </LinearLayout>
     1 package com.example.sharedpreferencesdemo;
     2 
     3 import android.app.Activity;
     4 import android.content.SharedPreferences;
     5 import android.os.Bundle;
     6 import android.view.View;
     7 import android.widget.Button;
     8 import android.widget.Toast;
     9 
    10 public class MainActivity extends Activity {
    11 
    12     private Button btnsava;
    13     private Button btnread;
    14 
    15     @Override
    16     protected void onCreate(Bundle savedInstanceState) {
    17         super.onCreate(savedInstanceState);
    18         setContentView(R.layout.activity_main);
    19 
    20         btnsava = (Button) findViewById(R.id.btn1);
    21         btnread = (Button) findViewById(R.id.btn2);
    22 
    23         btnsava.setOnClickListener(new View.OnClickListener() {
    24 
    25             @Override
    26             public void onClick(View v) {
    27                 // 实例化SharedPreferences对象(第一步)
    28                 SharedPreferences mySharedPreferences = getSharedPreferences(
    29                         "test", Activity.MODE_PRIVATE);
    30 
    31                 // 实例化SharedPreferences.Editor对象(第二步)
    32                 SharedPreferences.Editor editor = mySharedPreferences.edit();
    33 
    34                 // 用putString的方法保存数据
    35                 editor.putString("name", "pig");
    36                 editor.putString("habit", "sleep");
    37 
    38                 // 提交当前数据
    39                 editor.commit();
    40                 // 使用toast信息提示框提示成功写入数据
    41                 Toast.makeText(getApplicationContext(),
    42                         "数据成功写入SharedPreferences!", Toast.LENGTH_LONG).show();
    43 
    44             }
    45         });
    46 
    47         btnread.setOnClickListener(new View.OnClickListener() {
    48 
    49             @Override
    50             public void onClick(View v) {
    51                 SharedPreferences sharedPreferences = getSharedPreferences(
    52                         "test", Activity.MODE_PRIVATE);
    53                 
    54                 // 使用getString方法获得value,注意第2个参数是value的默认值
    55                 String name = sharedPreferences.getString("name", "");
    56                 String habit = sharedPreferences.getString("habit", "");
    57                 
    58                 // 使用toast信息提示框显示信息
    59                 Toast.makeText(
    60                         getApplicationContext(),
    61                         "读取数据如下:" + "
    " + "name:" + name + "
    " + "habit:"
    62                                 + habit, Toast.LENGTH_LONG).show();
    63 
    64             }
    65         });
    66     }
    67 }

    SharedPreferences将会把这些数据保存在test.xml文件中,可以在手机内存(部分手机要root)/data/data/<package name>/shared_prefs目录下看到.

    运行效果:

        

  • 相关阅读:
    [leetcode] Bulls and Cows
    Win7 系统所有应用颜色调整
    一道题反映Java的类初始化过程
    翻转二叉树(深搜-先序遍历-交换Node)
    在一个数组中,除了两个数外,其余数都是两两成对出现,找出这两个数,要求时间复杂度O(n),空间复杂度O(1)
    一道随机函数题:由rand5()生成rand7()
    求一条直线通过的最大点数
    菜根谭#236
    菜根谭#235
    菜根谭#234
  • 原文地址:https://www.cnblogs.com/benchao/p/5085291.html
Copyright © 2020-2023  润新知