栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

Android持久化技术之SharedPreferences存储实例详解

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android持久化技术之SharedPreferences存储实例详解

本文实例讲述了Android持久化技术之SharedPreferences存储。分享给大家供大家参考,具体如下:

1、SharedPreferences存储

在前面一篇文章《Android持久化技术之文件的读取与写入实例详解》中,我们介绍了Android持久化技术的文件的读取与写入。在本文中,继续介绍Android持久化技术另外一个SharedPreferences存储。

(1)SharedPreferences存储方式是基于key-value的,通过key可以找到对应的value。
(2)支持多种数据类型存储,比如字符串、整形、布尔型等,并有对应的存储与获取方法。
(3)获取SharedPreferences对象有多种方式。
使用Context类的getSharedPreferences方法。
使用Activity类的getPreferences方法
使用PreferenceManager类的getDefaultSharedPreferences方法
(4)当存储时,需要通过SharedPreferences对象获取SharedPreferences.Editor对象
(5)默认存储路径为:/data/data/包名/shared_prefs/目录
(6)存储文件类型为xml文件

2、示例

场景:点击保存按钮,存储数据;点击恢复按钮,恢复数据。

(1)activity_main.xml



  
    
    
    
  
  
    
    
    
  
  
    

(2)MainActivity.java

package com.example.testsharedpreferences;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {
  private EditText accountEdit;
  private EditText passwordEdit;
  private Button saveButton;
  private Button restoreButton;
  private SharedPreferences pref;
  private SharedPreferences.Editor editor;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //存储按钮
    saveButton = (Button) findViewById(R.id.login);
    //为存储按钮添加点击事件
    saveButton.setonClickListener(new onClickListener() {
      @Override
      public void onClick(View arg0) {
 //获取SharedPreferences对象
 //第一个参数:文件名,没有则新建。第二个参数:写入模式-覆盖
 pref = getSharedPreferences("second", MODE_PRIVATE);
 //获取SharedPreferences.Editor对象
 editor = pref.edit();
 //获取输入的账号内容
 accountEdit = (EditText) findViewById(R.id.account);
 String account = accountEdit.getText().toString();
 //获取输入的密码内容
 passwordEdit = (EditText) findViewById(R.id.password);
 String password = passwordEdit.getText().toString();
 //存储用户名和密码
 editor.putString("account", account);
 editor.putString("password", password);
 //提交
 editor.commit();
 Toast.makeText(getApplicationContext(), "保存成功", Toast.LENGTH_SHORT).show();
      }
    });
    //获取恢复按钮对象
    restoreButton = (Button) findViewById(R.id.login2);
    //添加事件
    restoreButton.setonClickListener(new onClickListener() {
      @Override
      public void onClick(View arg0) {
 //获取SharedPreference对象
 pref = getSharedPreferences("second", MODE_PRIVATE);
 //读取内容
 String account = pref.getString("account", "this is default value");
 String password = pref.getString("password", "this is default value");
 //设置到响应位置
 EditText editText2 = (EditText)findViewById(R.id.account2);
 editText2.setText(account);
 EditText passwordText2 = (EditText) findViewById(R.id.password2);
 passwordText2.setText(password);
 Toast.makeText(getApplicationContext(), "恢复成功", Toast.LENGTH_SHORT).show();
      }
    });
  }
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
  }
}

3、结果

输入内容后,当点击“save data”按钮后,存储文件为second.xml,如下:

对应内容:

下面是效果图:

 

希望本文所述对大家Android程序设计有所帮助。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/163510.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号