赞
踩
SharedPreference:是安卓特有的轻量级工具,存储结构是Key-Value的键值对方式
例子如下:
输入用户名和密码后,点击login可以用SharedPreference来存储
- xml代码:
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout
- 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">
-
- <LinearLayout
- android:layout_width="400dp"
- android:layout_height="400dp"
- android:orientation="vertical"
- android:layout_marginTop="30dp">
- <ImageView
- android:layout_width="60dp"
- android:layout_height="60dp"
- android:background="@drawable/dddss"
- android:layout_gravity="center"/>
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content">
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="60dp"
- android:gravity="center"
- android:text="username:"
- android:textColor="#000000"
- android:textSize="30sp" />
-
- <EditText
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:id="@+id/et_username"/>
- </LinearLayout>
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content">
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="60dp"
- android:gravity="center"
- android:text="password:"
- android:textColor="#000000"
- android:textSize="30sp" />
-
- <EditText
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:id="@+id/et_password"/>
- </LinearLayout>
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="horizontal"
- android:gravity="center">
- <Button
- android:layout_width="100dp"
- android:layout_height="60dp"
- android:text="login"
- android:layout_gravity="center"
- android:id="@+id/login"
- android:onClick="Login"
- />
- </LinearLayout>
-
- </LinearLayout>
- </LinearLayout>
- MainActicity的代码:
- package com.example.myapplication;
-
- import androidx.appcompat.app.AppCompatActivity;
-
-
- import android.os.Bundle;
-
- import android.text.TextUtils;
- import android.view.View;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.Toast;
-
- import java.util.Map;
-
- public class MainActivity extends AppCompatActivity {
- //SharedPreferences 可以永久的存储信息
- private EditText et_username,et_password;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
-
- et_username = findViewById(R.id.et_username);
- et_password = findViewById(R.id.et_password);
- Button login = findViewById(R.id.login);
-
-
- Map<String,String> userInfo = Utils.GetUserInfo(this);//获取用户信息
- //判断是否已经存上信息了,如果已经有信息,就让它显示
- if(userInfo!=null){
- et_username.setText(userInfo.get("username"));
- et_password.setText(userInfo.get("password"));
- }
- }
- public void Login(View view){
- String username = et_username.getText().toString().trim();
- String password = et_password.getText().toString().trim();
- //判断信息是否为空
- if(TextUtils.isEmpty(username)){ //TextUtils是系统的一个类,提供isEmpty
- Toast.makeText(this,"请输入username",Toast.LENGTH_SHORT).show();
- return;
- }
- if(TextUtils.isEmpty(password)){ //TextUtils是系统的一个类,提供isEmpty
- Toast.makeText(this,"请输入password",Toast.LENGTH_SHORT).show();
- return;
- }
- Toast.makeText(this,"登录成功!",Toast.LENGTH_SHORT).show();
- //判断信息是否保存成功
- boolean IsSaveSuccess = Utils.SaveUserInfo(this,username,password);
- if(IsSaveSuccess){
- Toast.makeText(this,"保存成功!",Toast.LENGTH_SHORT).show();
- }else
- Toast.makeText(this,"保存失败!",Toast.LENGTH_SHORT).show();
- }
- }
-
-
-
-
-
-
-
-
-
-
- 实现SharedPreference存储和读取功能java文件代码:
- package com.example.myapplication;
-
- import android.content.Context;
- import android.content.SharedPreferences;
-
- import java.util.HashMap;
- import java.util.Map;
-
- public class Utils {
-
- //存数据
- public static boolean SaveUserInfo(Context context,String username,String password)//第一个参数上下文,第二个账号,第三个密码
- {
-
- SharedPreferences sp = context.getSharedPreferences("data",Context.MODE_PRIVATE);//第一个是文件名,第二个是打开模式
-
- SharedPreferences.Editor editor = sp.edit();//获取editor对象
-
- editor.putString("username",username); //保存账号
- editor.putString("password",password); //保存密码
-
- return editor.commit(); //提交信息 ,commit就是个boolean型的,所以直接返回就可以
-
- }
-
- //取数据
- //因为存的信息有两个键值对,用户名和密码,所以可以用Map
- public static Map<String,String> GetUserInfo(Context context){
- SharedPreferences sp = context.getSharedPreferences("data",Context.MODE_PRIVATE);
-
- //获取Map对象
- Map<String,String> map = new HashMap<>();
- //获取值
- map.put("username",sp.getString("username",null));
- map.put("password",sp.getString("password",null));
-
- return map;
- }
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。