• Android应用开发基础篇(9)SharedPreferences


    一、概述

          对于SharedPreferences,我吧它理解为一种简单的数据库,它可以把数据像文件一样存放在系统里面,也可以读出来,但它存放的只是一些简单的数值对,如key-values的形式。如果某些应用需要在退出时保存一些简单的数据以便再次被打开时恢复所需的数据,那么就可以用SharedPreferences来实现。


    二、要求

         编写一个简单的应用,要求该应用退出时能保存某些所需要的数据,当应用再次打开时恢复这些数据。


    三、实现

         新建工程MyShared,修改/res/layout/main.xml文件,在里面添加一个EditText,两个Button和一个TextView,完整的main.xml文件如下:

     1 <?xml version="1.0" encoding="utf-8"?>
    2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    3 android:layout_width="fill_parent"
    4 android:layout_height="fill_parent"
    5 android:orientation="vertical" >
    6
    7 <EditText
    8 android:id="@+id/edittext"
    9 android:layout_width="fill_parent"
    10 android:layout_height="wrap_content"
    11 android:hint="请输入内容"
    12 />
    13
    14 <Button
    15 android:id="@+id/wbutton"
    16 android:layout_width="fill_parent"
    17 android:layout_height="wrap_content"
    18 android:text="写入"
    19 />
    20
    21 <Button
    22 android:id="@+id/rbutton"
    23 android:layout_width="fill_parent"
    24 android:layout_height="wrap_content"
    25 android:text="读取"
    26 />
    27
    28 <TextView
    29 android:id="@+id/textview"
    30 android:layout_width="fill_parent"
    31 android:layout_height="wrap_content"
    32 android:gravity="center_horizontal"
    33 android:textSize="20dip"
    34 />
    35
    36 </LinearLayout>

    接着,修改MySharedActivity.java文件,主要定义了一个SharedPreferences对象和一个SharedPreferences.Editor对象,实现两个按钮的监听,完整的MySharedActivity.java文件如下:

     1 package com.nan.shared;
    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.EditText;
    9 import android.widget.TextView;
    10 import android.widget.Toast;
    11
    12 public class MySharedActivity extends Activity
    13 {
    14 private EditText mEditText = null;
    15 private Button writeButton = null;
    16 private Button readButton = null;
    17 private TextView mTextView = null;
    18
    19 private SharedPreferences mSharedPreferences = null;
    20 private SharedPreferences.Editor mEditor = null;
    21
    22 /** Called when the activity is first created. */
    23 @Override
    24 public void onCreate(Bundle savedInstanceState)
    25 {
    26 super.onCreate(savedInstanceState);
    27 setContentView(R.layout.main);
    28
    29 mEditText = (EditText)this.findViewById(R.id.edittext);
    30 writeButton = (Button)this.findViewById(R.id.wbutton);
    31 readButton = (Button)this.findViewById(R.id.rbutton);
    32 mTextView = (TextView)this.findViewById(R.id.textview);
    33
    34 mSharedPreferences = getSharedPreferences("myshare",MODE_PRIVATE);
    35 mEditor = mSharedPreferences.edit();
    36
    37 writeButton.setOnClickListener(new View.OnClickListener()
    38 {
    39
    40 @Override
    41 public void onClick(View v)
    42 {
    43 // TODO Auto-generated method stub
    44 //获得EditText的内容
    45 String text = mEditText.getText().toString();
    46 //修改
    47 mEditor.putString("hehe", text);
    48 //提交修改
    49 mEditor.commit();
    50 displayToast("写入成功!");
    51 }
    52 });
    53
    54 readButton.setOnClickListener(new View.OnClickListener()
    55 {
    56
    57 @Override
    58 public void onClick(View v)
    59 {
    60 // TODO Auto-generated method stub
    61 //获取所保存的数据
    62 String text = mSharedPreferences.getString("hehe", null);
    63 //把数据显示出来
    64 mTextView.setText(text);
    65 }
    66 });
    67
    68 }
    69 //显示Toast函数
    70 private void displayToast(String s)
    71 {
    72 Toast.makeText(MySharedActivity.this, s, Toast.LENGTH_SHORT).show();
    73 }
    74
    75 }

    好了,运行它,如下:

    接着输入一行数字,然后点击“写入”,如下:

    退出应用,重新运行它并点击“读取”按钮,效果如下:

    可以看到之前保存的数据被显示出来了。

    OK,完成。



  • 相关阅读:
    DeWeb 与 Unigui的区别
    DeWeb 电脑和手机动态适配
    DeWeb --- Hello,World!
    DeWeb 简介
    Android ---------- 汉字空格
    Android ---------- List 数组转成 json格式的字符串
    Android ---------- TabLayout 实战 (一)
    Thinkphp5.0中input函数用法
    jQuery在页面加载的时候自动调用某个函数的方法(转载)
    关于wampserver的一点知识
  • 原文地址:https://www.cnblogs.com/lknlfy/p/2370319.html
Copyright © 2020-2023  润新知