Android中SharedPerforences的简单使用示例 --Android基础

SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置,比如Activity状态,Activity暂停时,将此activity的状态保存到SharedPereferences中;当Activity重载,系统回调方法onSaveInstanceState时,再从SharedPreferences中将值取出……。下面通过一个小小的案例,分享一下我之前做的。

1、最终效果图

大致就是通过SharedPreferences存储类创建一个配置文件(这里是通过按钮去触发的),然后向配置文件中写入配置信息,最后就是读配置中“键”对应的“值”(这里通过按钮触发将读到的值显示出来)。还是比较简单,很容易的。

2、布局文件

activity_main.xml:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:app="http://schemas.android.com/apk/res-auto"
 4     xmlns:tools="http://schemas.android.com/tools"
 5     android:layout_width="match_parent"
 6     android:layout_height="match_parent"
 7     tools:context="thonlon.example.cn.sharedpreferencesdemo.MainActivity">
 8
 9     <Button
10         android:id="@+id/btn_create"
11         android:layout_width="396dp"
12         android:layout_height="46dp"
13         android:text="@string/btn_create_sp"
14         app:layout_constraintBottom_toBottomOf="parent"
15         app:layout_constraintLeft_toLeftOf="parent"
16         app:layout_constraintRight_toRightOf="parent"
17         app:layout_constraintTop_toTopOf="parent"
18         app:layout_constraintVertical_bias="0.0" />
19
20     <Button
21         android:id="@+id/btn_getInfo"
22         android:layout_width="396dp"
23         android:layout_height="46dp"
24         android:layout_marginLeft="0dp"
25         android:text="@string/btn_getInfo_sp"
26         app:layout_constraintBottom_toBottomOf="parent"
27         app:layout_constraintLeft_toLeftOf="parent"
28         app:layout_constraintRight_toRightOf="parent"
29         app:layout_constraintTop_toTopOf="parent"
30         app:layout_constraintVertical_bias="0.1" />
31
32     <TextView
33         android:id="@+id/textView1"
34         android:layout_width="80dp"
35         android:layout_height="20dp"
36         android:background="@color/colorPrimary"
37         android:text="英文显示:"
38         android:textAlignment="center"
39         android:textColor="@color/colorWhite"
40         app:layout_constraintBottom_toBottomOf="parent"
41         app:layout_constraintHorizontal_bias="0.0"
42         app:layout_constraintLeft_toLeftOf="parent"
43         app:layout_constraintRight_toRightOf="parent"
44         app:layout_constraintTop_toTopOf="parent"
45         app:layout_constraintVertical_bias="0.465" />
46
47     <TextView
48         android:id="@+id/textView2"
49         android:layout_width="80dp"
50         android:layout_height="20dp"
51         android:background="@color/colorPrimary"
52         android:text="中文显示:"
53         android:textAlignment="center"
54         android:textColor="@color/colorWhite"
55         app:layout_constraintBottom_toBottomOf="parent"
56         app:layout_constraintHorizontal_bias="0"
57         app:layout_constraintLeft_toLeftOf="parent"
58         app:layout_constraintRight_toRightOf="parent"
59         app:layout_constraintTop_toTopOf="parent"
60         app:layout_constraintVertical_bias="0.205" />
61
62     <TextView
63         android:id="@+id/tv1"
64         android:layout_width="wrap_content"
65         android:layout_height="wrap_content"
66         app:layout_constraintBottom_toBottomOf="parent"
67         app:layout_constraintHorizontal_bias="0.0"
68         app:layout_constraintLeft_toLeftOf="parent"
69         app:layout_constraintRight_toRightOf="parent"
70         app:layout_constraintTop_toTopOf="parent"
71         app:layout_constraintVertical_bias="0.244" />
72
73     <TextView
74         android:id="@+id/tv2"
75         android:layout_width="wrap_content"
76         android:layout_height="wrap_content"
77         app:layout_constraintBottom_toBottomOf="parent"
78         app:layout_constraintHorizontal_bias="0.0"
79         app:layout_constraintLeft_toLeftOf="parent"
80         app:layout_constraintRight_toRightOf="parent"
81         app:layout_constraintTop_toTopOf="parent"
82         app:layout_constraintVertical_bias="0.53" />
83 </android.support.constraint.ConstraintLayout>

3、activity文件

MainActivity.java

 1 package thonlon.example.cn.sharedpreferencesdemo;
 2
 3 import android.content.SharedPreferences;
 4 import android.support.v7.app.AppCompatActivity;
 5 import android.os.Bundle;
 6 import android.view.View;
 7 import android.widget.Button;
 8 import android.widget.TextView;
 9 import android.widget.Toast;
10
11 public class MainActivity extends AppCompatActivity {
12
13     private SharedPreferences sharedPreferences;
14     private Button btn_create, btn_getInfo;
15     private TextView textView1, textView2;
16
17     @Override
18     protected void onCreate(Bundle savedInstanceState) {
19         super.onCreate(savedInstanceState);
20         setContentView(R.layout.activity_main);
21         btn_create = (Button) findViewById(R.id.btn_create);
22         btn_getInfo = (Button) findViewById(R.id.btn_getInfo);
23         textView1 = (TextView) findViewById(R.id.tv1);
24         textView2 = (TextView) findViewById(R.id.tv2);
25 //        设置配置文件的名称和配置文件的被访问权限
26         sharedPreferences = getSharedPreferences("config", MODE_ENABLE_WRITE_AHEAD_LOGGING);
27         btn_create.setOnClickListener(new View.OnClickListener() {
28             @Override
29             public void onClick(View view) {
30                 write();
31             }
32
33             private void write() {
34                 //得到配置编辑器
35                 SharedPreferences.Editor edit = sharedPreferences.edit();
36                 //写入配置信息到配置文件中
37                 edit.putString("Chinese", "SharedPreferences是Android平台上一个轻量级的存储类。");
38                 edit.putString("English", "SharedPreferences is a lightweight storage class on the Android platform to save some of the common configuration of the application.");
39                 //注意以上只是将配置信息写入了内存
40                 edit.commit();//提交内存配置信息到本地
41                 Toast.makeText(getApplicationContext(), "成功创建文件", Toast.LENGTH_LONG).show();
42             }
43         });
44         btn_getInfo.setOnClickListener(new View.OnClickListener() {
45             @Override
46             public void onClick(View view) {
47                 read();
48             }
49
50             private void read() {
51                 String chinese_info = sharedPreferences.getString("Chinese", "");
52                 String english_info = sharedPreferences.getString("English", "");
53                 textView1.setText(chinese_info);
54                 textView2.setText(english_info);
55             }
56         });
57     }
58 }

4、源码下载

百度云下载链接:https://pan.baidu.com/s/1PRY5fdlAt5ZSl05NGniWrw 密码:tpr0

原文地址:https://www.cnblogs.com/qikeyishu/p/9110023.html

时间: 2024-10-12 04:45:36

Android中SharedPerforences的简单使用示例 --Android基础的相关文章

Android中SharePreferences的简单实现

Android中提供SharePreferences这种轻量级的数据存储模式,这种模式能够存储少量数据,并能为自身和其他应用提供数据接口.相对于其他数据存储方式,SharePreferences更加轻量.以下是整个SharePreferences实现的代码: xml布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas

android中ViewConfiguration的简单介绍

android.view.ViewConfiguration Contains methods to standard constants used in the UI for timeouts, sizes, and distances. 常用方法: ViewConfiguration.get(getContext()).getScaledTouchSlop() 官方描述:Distance in pixels a touch can wander before we think the use

Android中AsyncTask的简单用法【转】

在开发Android移动客户端的时候往往要使用多线程来进行操作,我们通常会将耗时的操作放在单独的线程执行,避免其占用主线程而给用户带来不好的用户体验.但是在子线程中无法去操作主线程(UI 线程),在子线程中操作UI线程会出现错误.因此android提供了一个类Handler来在子线程中来更新UI线程,用发消息的机制更新UI界面,呈现给用户.这样就解决了子线程更新UI的问题.但是费时的任务操作总会启动一些匿名的子线程,太多的子线程给系统带来巨大的负担,随之带来一些性能问题.因此android提供了

[原创]Android中LocationManager的简单使用,获取当前位置

Android中LocationManager的提供了一系列方法来地理位置相关的问题,包括查询上一个已知位置:注册/注销来自某个 LocationProvider的周期性的位置更新:以及注册/注销接近某个坐标时对一个已定义Intent的触发等.今天我们就来看看Android 中LocatinManager的简单使用,以获取当前所在的位置为例. 首先,我们需要获取LocationManager的一个实例,这里需要注意的是他的实例只能通过下面这种方式来获取,直接实例化LocationManager是

解决Android中No resource found that matches android:TextAppearance.Material.Widget.Button.Inverse问题

解决Android中No resource found that matches android:TextAppearance.Material.Widget.Button.Inverse问题http://blog.csdn.net/u012336923/article/details/48289485 /路径/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.0.1/res/values-v23/v

Android中回调函数的理解---本人Android纯新手

本人大二,刚刚接触Android,也刚刚申请的cnblog博客,说一下对Android中回调函数的理解,Android中回调函数和C++.JAVA中的默认构造函数差不多,即运行到了一定的代码时自动调用的代码,而Android中的回调函数和C++.JAVA中的默认构造函数的区别在于:C++.JAVA中的默认构造函数在创建一个对象时自动调用,而Android中的回调函数的自动调用是在比如按了HOME键之后.

Android中ProgressDialog的简单示例

网上一般对进度条的示例都是如何显示,没有在任务结束如何关闭的文章,参考其他文章经过试验之后把整套进度条显示的简单示例如下: 建立android工程等工作都略去,Google一下就可以了. 下面来介绍主要的Activity ProgressBarDemo.java Java代码   package com.lveyo.android.demo.progressbar; import android.app.Activity; import android.app.ProgressDialog; i

Android中Tomcat的简单配置和使用

因为学Android已经有一段时间了,但是在学校,服务器方面是个短板啊,没有专门的服务器拿给我们学生练手,所以只有自己找办法了.当然,Tomcat就是不二的选择了. 在网上看了看资料,还是觉得自己记录下来比较好. 因为我是学Android的,所以jdk什么的已配置好了.如果不知道,请看<java的环境变量配置> 首先我们先要下载Tomcat:http://tomcat.apache.org/(请自行选择版本),我用的是Tomcat 7.0.55. 我下载下来是一个压缩包,选择好路径后,进行解压

android中的回调简单认识

首先说一下最抽象的形式--2个类,A类和B类.A类含有1个接口.1个接口变量.(可能含有)1个为接口变量赋值的方法以及1个会使用接口变量的"地方";B类实现A中的接口,(可能)含有1个A类实例的引用,并且(可能用A类中为接口变量赋值的方法)将"自己"传递给A类的接口变量. 再将一个小故事: 我们平时考试答题的第一件事是干嘛?没错,是写上学号和姓名.这里注意了,我们填写学号和姓名不是给自己看的(即该方法不是给自己调用的),而是给老师登记分数时看的(预留给系统将来调用)