zoukankan      html  css  js  c++  java
  • sharedPreferences存储数据

    sharedPreferences使用的是键值对的方式存储数据。

    1.Android中三种获取sharedPreferences的方式

    1)Context 类中的getSharedPreferences()方法,该方法接受,第一个参数用于指定SharedPreferences 文件的名称,第二个参数用于指定操作模式,主要有两种模式可以选择,MODE_PRIVATE 和MODE_MULTI_PROCESS。

    2)Activity 类中的getPreferences()方法,和上面的方法类似

    3)PreferenceManager 类中的getDefaultSharedPreferences()方法 这是一个静态方法,它接收一个Context 参数。

    获取sharedPreference之后,通过三步向其中添加数据

    1.调用sharedPreference对象的edit()方法,获取SharedPreferences.Editor对象。

    2.向Editor对象中添加数据。如,String类型数据用putString()方法。

    3.通过调用commit()方法将添加的数据提交,从而完成数据存储操作。

    获取sharedPreference中的数据的方法更加简单

    1.获取sharedPreferens对象,

    2.通过对象调用getString()方法,该方法传入两个参数,第一个参数是键值,第二个参数是该值得默认值。

    现在代码实现:

    界面直接写连个button,一个用于存储数据,一个用于取出数据。

     1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     2     xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
     3     android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
     4     android:paddingRight="@dimen/activity_horizontal_margin"
     5     android:paddingTop="@dimen/activity_vertical_margin"
     6     android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"
     7     android:orientation="vertical"
     8     >
     9 
    10     
    11     <Button
    12         android:layout_width="match_parent"
    13         android:layout_height="wrap_content"
    14         android:id="@+id/save_data"
    15         android:text="save data"
    16         />
    17     <Button
    18         android:layout_width="match_parent"
    19         android:layout_height="wrap_content"
    20         android:id="@+id/get_date"
    21         android:text="get date"
    22 
    23         />
    24     <TextView
    25         android:layout_width="match_parent"
    26         android:layout_height="wrap_content"
    27         android:lines="2"
    28         android:id="@+id/text"
    29         android:hint="result is here"
    30         />
    31 </LinearLayout>
    xml

    接着在.java文件中添加如下代码

     1 package com.example.yqt.sharedpreferencestest;
     2 
     3 import android.content.SharedPreferences;
     4 import android.support.v7.app.AppCompatActivity;
     5 import android.os.Bundle;
     6 import android.util.Log;
     7 import android.view.Menu;
     8 import android.view.MenuItem;
     9 import android.view.View;
    10 import android.widget.Button;
    11 import android.widget.TextView;
    12 
    13 public class MainActivity extends AppCompatActivity {
    14 
    15 
    16     Button savadata;
    17     Button getdata;
    18 
    19     TextView text;
    20 
    21 
    22     @Override
    23     protected void onCreate(Bundle savedInstanceState) {
    24         super.onCreate(savedInstanceState);
    25         setContentView(R.layout.activity_main);
    26 
    27         savadata = (Button)findViewById(R.id.save_data);
    28         savadata.setOnClickListener(new View.OnClickListener() {
    29             @Override
    30             public void onClick(View v) {
    31                 SharedPreferences.Editor editor = getSharedPreferences("data",MODE_PRIVATE).edit();
    32                 editor.putString("name","Tom");
    33                 editor.putInt("age", 25);
    34                 editor.putBoolean("married", false);
    35                 editor.commit();
    36             }
    37         });
    38 
    39         text = (TextView)findViewById(R.id.text);
    40 
    41         getdata = (Button)findViewById(R.id.get_date);
    42         getdata.setOnClickListener(new View.OnClickListener() {
    43             @Override
    44             public void onClick(View v) {
    45                 SharedPreferences pref = getSharedPreferences("data",MODE_PRIVATE);
    46                 String name = pref.getString("name", "");
    47                 int age = pref.getInt("age", 0);
    48                 Boolean married = pref.getBoolean("married",false);
    49                 Log.d("MainActivity","name is "+name);
    50                 Log.d("MainActivity","age is "+age);
    51                 Log.d("MainActivity","married is "+married);
    52                 text.setText("name "+name+" age:"+age+" married:"+married);
    53             }
    54         });
    55 
    56 
    57     }
    58 
    59 }
    MainActivity.java

    最后运行可以看到如下结果

     

    这是保持后的数据导出的结果

    <?xml version='1.0' encoding='utf-8' standalone='yes' ?>
    <map>
        <string name="name">Tom</string>
        <boolean name="married" value="false" />
        <int name="age" value="25" />
    </map>
    data
  • 相关阅读:
    Google 推出开源博客迁移工具
    Google 的盲人科学家 T. V. RAMAN
    Sun收购Qlayer以积极推动云计算业务
    比尔盖茨:云计算再造软件边界
    一些CodeGuru的COM教程 (英文)
    机器人:人工智能与心理学的较量
    100个最古老互联网域名 最久只有23年(附名单)
    spring2 hibernate3 中包冲突问题解决
    spring2.5+struts2+hibernate+mysql
    [转].NET破解体验 ildasm.exe的使用
  • 原文地址:https://www.cnblogs.com/yuqt/p/5078580.html
Copyright © 2011-2022 走看看