SharePreference

一般用于保存偏好设置,比如说我们设置里的条目

sharepreference使用步骤

1、拿到sharepreference

//拿到share preference
setting_info = this.getSharedPreferences("setting_info", MODE_PRIVATE);

这里的this是指上下文Context,在Activity中,因为Activity直接或间接继承了Context,所以直接使用this。

2、进入编辑模式

//拿到编辑器
SharedPreferences.Editor edit = setting_info.edit();

3、保存数据

//保存数据
edit.putBoolean("state",isChecked);

保存数据时,根据数据的类型boolean,String,float,等等

4、提交数据编辑器

//提交编辑器
edit.commit();

将其打印到桌面

sharepreference同样属于内部存储,与files/cache相同,在data/data包名下shared_prefs以xml文件形式保存。

它的内容保存都是以键值对的方式保存。

sharepreference数据回显

//数据回显
boolean state = setting_info.getBoolean("state", false);
mAllowUnknownSourceSwitch.setChecked(state);

将其设为打开

关闭程序

再次运行

整体原码

PreferenceDemoActivity.java

package com.example.logindemo;

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.util.Log;
import android.widget.CompoundButton;
import android.widget.Switch; import androidx.annotation.Nullable; public class PreferenceDemoActivity extends Activity implements CompoundButton.OnCheckedChangeListener {
Switch mAllowUnknownSourceSwitch ;
private static final String TAG="PreferenceDemoActivity";
private SharedPreferences setting_info; @Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_preference_layout);
//找到控件
mAllowUnknownSourceSwitch=this.findViewById(R.id.allow_unknown_source_switch);
mAllowUnknownSourceSwitch.setOnCheckedChangeListener(this);
//拿到share preference
setting_info = this.getSharedPreferences("setting_info", MODE_PRIVATE);
//数据回显
boolean state = setting_info.getBoolean("state", false);
mAllowUnknownSourceSwitch.setChecked(state);
} @Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
//对数据进行控制台打印
Log.d(TAG,"current state"+isChecked);
//拿到编辑器
SharedPreferences.Editor edit = setting_info.edit();
//保存数据
edit.putBoolean("state",isChecked);
//提交编辑器
edit.commit();
}
}

activity_preference_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="80dp"> <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:orientation="vertical"> <TextView
android:layout_width="wrap_content"
android:text="未知来源"
android:textSize="20sp"
android:textColor="@color/colorAccent"
android:padding="10dp"
android:layout_height="wrap_content"/>
<TextView
android:layout_width="wrap_content"
android:text="允许安装未知来源的应用"
android:textSize="18sp"
android:layout_marginLeft="10dp"
android:layout_height="wrap_content"/>
</LinearLayout> <Switch
android:id="@+id/allow_unknown_source_switch"
android:layout_width="wrap_content"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"
android:layout_height="wrap_content"/>
</RelativeLayout>

SharePreference的使用的更多相关文章

  1. 安卓android sharepreference数据存储,保存输入框里面的数据

    Fragment 里面 使用轻量级的数据存储sharepreference ,代码思路清晰.保存输入框里面的数据,实现按钮保存. 个人项目中简单清晰代码: 赵存档 编写 ,可以参考: 类继承Fragm ...

  2. SharePreference 工具类封装

    import java.util.List;import java.util.Map;import java.util.Set;import com.alibaba.fastjson.JSON;imp ...

  3. Android引导指示层的制作 (ViewStub + SharePreference)

    引导指示界面是个什么鬼东西?一张图即明了:

  4. 利用Gson和SharePreference存储结构化数据

    问题的导入 Android互联网产品通常会有很多的结构化数据需要保存,比如对于登录这个流程,通常会保存诸如username.profile_pic.access_token等等之类的数据,这些数据可以 ...

  5. Android开发(二十四)——数据存储SharePreference、SQLite、File、ContentProvider

    Android提供以下四种存储方式: SharePreference SQLite File ContentProvider Android系统中数据基本都是私有的,一般存放在“data/data/程 ...

  6. SharePreference是如何实现的——序列化XML文件

    还记得上一篇我们讲到了用SharePreference来存储数据,那么究竟它是如何实现的呢,今天我们就来仔细看看其实现的细节,我们给它一个准确的名字,叫做XML序列化器(XmlSerializer). ...

  7. 对SharePreference的封装

    今天需要用到SharePreference来保存一些设置参数,因为要用到很多次 所以对它进行了封装: public class PrefUtils { public static void putBo ...

  8. sharepreference实现记住password功能

        SharePreference是用于保存数据用的.主要调用Context.getSharePreferences(String name, int mode)方法来得到SharePrefere ...

  9. sharepreference使用教程

    1.应用 SharePreference主要用于保存一些数据,比如用户登录后的user_id,user_mobile,这样就可以做自动登录了,每次判断SharePreference中有没有数据,有的话 ...

随机推荐

  1. uniGUI读取文本文件(08)

    为了测试没有数据库下的简单入门例子 procedure TMainForm.UniButton2Click(Sender: TObject); // 读取 文本 var aStringlist: Ts ...

  2. Python Web 框架原理

    Web Socket 所谓 Web 服务,本质上就是用户使用一个 socket 客户端(浏览器)去访问一个 socket 服务端. 下面是一个最基础的基于 socket 的 Python Web 服务 ...

  3. swoole之内存

    一.代码 <?php // 可以用来数据共享 // 执行完后 自动释放 // 创建内存表 $table = new swoole_table(1024); // 内存表增加一列 $table-& ...

  4. WebView使用详解(二)——WebViewClient与常用事件监听

      登录|注册     关闭 启舰 当乌龟有了梦想……       目录视图 摘要视图 订阅 异步赠书:Kotlin领衔10本好书      免费直播:AI时代,机器学习如何入门?      程序员8 ...

  5. JS数据统计表 highcharts.js的运用

    参考地址 http://www.runoob.com/highcharts/highcharts-column-basic.html 1.下载JS文件引入,或者用CDN function getCou ...

  6. 如何使用Docker部署PHP开发环境

    本文主要介绍了如何使用Docker构建PHP的开发环境,文中作者也探讨了构建基于Docker的开发环境应该使用单容器还是多容器,各有什么利弊.推荐PHP开发者阅读.希望对大家有所帮助. 环境部署一直是 ...

  7. IOS pin约束问题 存在间隙

    今天在为自己的view添加约束 对比以前添加的约束时,发现有有两层淡红色线框一条实线和一条虚线,而以前一个demo中添加的则只有一个蓝色实线框. 今天添加的约束如图1所示: 图1 而以前添加约束如图2 ...

  8. rapid-generator JAVA代码生成器

    有感于马上要做个比较大的业务系统,想到那无止境的增删改查.粘贴复制,顿时脑后升起一阵凉风.于是想到个找或者写一个Java代码的生成器,这样在正常开发进度下,也能余下更多的时间去做些别的事情. 闲话少说 ...

  9. CF-diary

    (做题方式:瞟题解然后码) 1238E. Keyboard Purchase \(\texttt{Difficulty:2200}\) 题意 给你一个长度为 \(n\) 的由前 \(m\) 个小写字母 ...

  10. JavaScript 文件延迟和异步加载

    JavaScript 文件延迟和异步加载 -般情况下,在文档的 <head> 标签中包含 JavaScript 脚本,或者导入的 JavaScript 文件. 这意味着必须等到全部 Jav ...