AndroID 系统提供了轻量级的数据存储方式——SharedPreferences 存储。它屏蔽了对底层文件的 *** 作,通过为程序开发人员提供简单的编程接口,实现以最简单的方式对数据进行永久保存。这种方式主要对少量的数据进行保存,比如对应用程序的配置信息、手机应用的主题、游戏的玩家积分等进行保存。
如何使用SharedPreferences 存储数据?
一、获取SharedPreferences 对象,一般有两种方法
方法1:getSharedPreferences(String name, int mode)
name:共享文件的名称(不包括扩展名),该文件为 XML 格式。
mode:用于指定访问权限,它的参数值可以是 MODE_PRIVATE、MODE_MulTI_PROCESS,一般选用第一个即可。
方法2:getPreferences(int mode)
mode与方法1相同。
二、获得 SharedPreferences.Editor 对象,通过Editor 对象的方法进行写入。
获得Editor 对象:SharedPreferences.Editor editor=getSharedPreferences("myinfo",MODE_PRIVATE).edit();
写入数据(通过键值的方式写入):editor.putString("VALUE","hello");
提交当前数据:editor.commit();
三、获取SharedPreferences 的对象sharedPreferences,通过sharedPreferences进行读取数据 *** 作
获取sharedPreferences对象:SharedPreferences sharedPreferences = getSharedPreferences("myinfo",MODE_PRIVATE);
对数据进行读取:sharedPreferences.getString(“VALUE”,“myinfo”)
下面通过一个实例体验一下SharedPreferences存储。
本次通过一个简单的用户登录界面来展现,用SharedPreferences存储来保存账户和密码信息。
代码如下:
activity_main.xml
<?xml version="1.0" enCoding="utf-8"?><androIDx.constraintlayout.Widget.ConstraintLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" xmlns:app="http://schemas.androID.com/apk/res-auto" xmlns:tools="http://schemas.androID.com/tools" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" tools:context=".MainActivity"> <EditText androID:ID="@+ID/et_user" androID:layout_wIDth="0dp" androID:layout_height="wrap_content" androID:layout_marginStart="5dp" androID:layout_marginleft="5dp" androID:layout_marginEnd="5dp" androID:layout_marginRight="5dp" androID:layout_marginBottom="10dp" androID:drawableRight="@drawable/icon_user" androID:ems="10" androID:hint="请输入账号" androID:inputType="textPersonname" androID:paddingleft="5dp" androID:paddingRight="10dp" androID:textSize="25sp" app:layout_constraintBottom_totopOf="@+ID/et_password" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" /> <EditText androID:ID="@+ID/et_password" androID:layout_wIDth="0dp" androID:layout_height="wrap_content" androID:layout_marginStart="5dp" androID:layout_marginleft="5dp" androID:layout_marginEnd="5dp" androID:layout_marginRight="5dp" androID:drawableRight="@drawable/icon_password" androID:ems="10" androID:hint="请输入密码" androID:inputType="textPassword" androID:paddingleft="5dp" androID:paddingRight="10dp" androID:textSize="25sp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constrainttop_totopOf="parent" /> <button androID:ID="@+ID/btn_confirm" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:layout_margintop="30dp" androID:text="保存并显示用户信息" androID:textSize="14sp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constrainttop_toBottomOf="@+ID/et_password" /> <ImageVIEw androID:ID="@+ID/imageVIEw2" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" app:layout_constraintBottom_totopOf="@+ID/et_user" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constrainttop_totopOf="parent" app:srcCompat="@mipmap/ic_launcher_round" /></androIDx.constraintlayout.Widget.ConstraintLayout>
MainActivity.java
package com.example.mydemo;import androIDx.appcompat.app.AppCompatActivity;import androID.app.AlertDialog;import androID.app.Dialog;import androID.content.DialogInterface;import androID.content.SharedPreferences;import androID.os.Bundle;import androID.text.TextUtils;import androID.vIEw.VIEw;import androID.Widget.button;import androID.Widget.EditText;import androID.Widget.Toast;public class MainActivity extends AppCompatActivity { public static final String USER = "user"; public static final String PASSWORD = "password"; public static final String MYINFO = "myinfo"; private EditText etUser; private EditText etPassword; private button btnConfirm; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); etUser = findVIEwByID(R.ID.et_user); etPassword = findVIEwByID(R.ID.et_password); btnConfirm = findVIEwByID(R.ID.btn_confirm); btnConfirm.setonClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw v) { //保存用户信息 savedInfo(); //通过对话框展示存储信息 showInfo(); } }); } private voID showInfo() { SharedPreferences sharedPreferences = getSharedPreferences(MYINFO,MODE_PRIVATE); //创建一个对话框 final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setTitle("登录信息") .setMessage("账户:"+sharedPreferences.getString(USER,MYINFO)+"\n"+ "密码:"+sharedPreferences.getString(PASSWORD,MYINFO)) .setCancelable(false) .setNegativebutton("退出", new DialogInterface.OnClickListener() { @OverrIDe public voID onClick(DialogInterface dialog, int which) { dialog.cancel(); } }) .create() .show(); } private voID savedInfo() { if (TextUtils.isEmpty(etUser.getText())&& TextUtils.isEmpty(etPassword.getText())) { Toast.makeText(getApplicationContext(),"账户或密码不能为空!",Toast.LENGTH_SHORT) .show(); } else { SharedPreferences.Editor editor = getSharedPreferences(MYINFO,MODE_PRIVATE).edit(); editor.putString(USER,etUser.getText().toString()); editor.putString(PASSWORD,etPassword.getText().toString()); editor.commit();//提交当前数据 } }}
链接:百度网盘下载 提取码:5mp7
点赞收藏分享文章举报大鹏学Android发布了18 篇原创文章 · 获赞 5 · 访问量 8462私信 关注 总结以上是内存溢出为你收集整理的Android——SharedPreferences 存储(含源码下载)全部内容,希望文章能够帮你解决Android——SharedPreferences 存储(含源码下载)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)