IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android Studio SharedPreferences数据存储的学习 -> 正文阅读

[移动开发]Android Studio SharedPreferences数据存储的学习

Android Studio SharedPreferences数据存储的学习

Android Studio 有三种数据存储的方式,作为入门,将上周学习的SharedPreferences形式的数据存储方式进行总结,发布在我的blog上
首先,我也是作为了解,先入门学习了一些相关知识
在这里插入图片描述
如下图所示,一般的使用方式是
1.获取SharePreferences对象,同时指定名称和访问权限
2.获取SharePreferences的编辑器对象,其中Editor是sharePreferences中的一个类
3.通过编辑器进行数据的存储,数据的存储方式有很多种,int ,String,boolean类型都有的。
4.使用editor.commit()进行提交
在这里插入图片描述
在这里插入图片描述
本次学习是完成了一个小登录界面。实现一个数据的存储和登录
像其他app一样,用户一打开app就要进行一个注册的操作,那么注册的过程中这个后台就通过使用SharedPreferences对用户的数据进行存储,,然后注册后,就会提示注册成功,这个是使用Toast实现的,然后进行登录的操作,同时对于用户名和密码要进行判断,是否密码和用户名匹配,如果匹配,那么就显示登录成功。
在这里插入图片描述
话不多说,上代码

<--这里是界面的代码,前端很简单,只是要记住有两个button后期是要为此写代码的-->
<?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"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@mipmap/ic_launcher"
        android:layout_marginTop="200dp"
        android:layout_marginLeft="150dp"/>

    <EditText
        android:id="@+id/name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="输入用户名"
        android:layout_marginTop="20dp"
        />
    <EditText
        android:id="@+id/psw"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:password="true"
        android:hint="输入密码" />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="登录"
        android:id="@+id/login"
        android:layout_marginTop="10dp"/>
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="注册"
        android:id="@+id/register"
        android:layout_marginTop="10dp"/>

</LinearLayout>
package com.example.myapplication;

import android.content.Context;
import android.content.SharedPreferences;

import java.util.HashMap;
import java.util.Map;    //以上都是一些引用的包文件

public class UserInfo_SharePre   //这是在Java下面设立的一个共有类,名字叫做UserInfo_SharePre
{
    //用户数据的存储的方法
    public static boolean saveUserInfo(String userName, String PassWord, Context context){
        //获取SharePreferences对象,同时指定名称和访问权限
        SharedPreferences sp=context.getSharedPreferences("myData",Context.MODE_PRIVATE);
        //获取SharePreferences的编辑器对象
       SharedPreferences.Editor edit = sp.edit();//Editor是sharePreferences中的一个类
       //通过编辑器进行数据的存储
        edit.putString("Uname",userName);
        edit.putString("pwd",PassWord);
        edit.commit();//提交

        return true;
    }
    //读取用户的数据
    public static Map<String,String> getUserInfo(Context context){
        SharedPreferences sp=context.getSharedPreferences("myData",Context.MODE_PRIVATE);
        String usrName=sp.getString("Uname","");
        String Password=sp.getString("pwd","");
        Map<String,String> userMap=new HashMap<>();
        userMap.put("UserName",usrName);
        userMap.put("psd",Password);
        return userMap;
    }
}

MainActivity.java

package com.example.myapplication;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

import android.app.ActionBar;
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 {
    private Button registerBtn,loginBtn;
    private EditText userName,password;
    @Override

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        init();
        registerBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //提取编辑框中输入的用户名和密码,将它们写入到文件中去
                //trim的方法是用于删除字符串的头尾空白符
                String Uname=userName.getText().toString().trim();
                String Pwd=password.getText().toString().trim();
                if(TextUtils.isEmpty(Uname)){
                    Toast.makeText(MainActivity.this,"用户名不能为空",Toast.LENGTH_SHORT).show();
                    return;
                }
                if(TextUtils.isEmpty(Pwd)){
                    Toast.makeText(MainActivity.this,"请输入密码",Toast.LENGTH_SHORT).show();
                    return;
                }
                boolean isSuccess=UserInfo_SharePre.saveUserInfo(Uname,Pwd,MainActivity.this);
                if(isSuccess){
                    Toast.makeText(MainActivity.this, "保存成功", Toast.LENGTH_SHORT).show();
                }
                else{
                    Toast.makeText(MainActivity.this, "保持失败", Toast.LENGTH_SHORT).show();
                }
            }
        });
        loginBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Map<String,String> userMap=UserInfo_SharePre.getUserInfo(MainActivity.this);
                //提取编辑框中输入的用户名和密码,将它们写入到文件中去
                //trim的方法是用于删除字符串的头尾空白符
                String Uname=userName.getText().toString().trim();
                String Pwd=password.getText().toString().trim();
                String MapUname=userMap.get("UserName");
                String MapPwd=userMap.get("psd");
                if(userMap!=null&&Uname.equals(MapUname)&&Pwd.equals(MapPwd)){
                    Toast.makeText(MainActivity.this, "登录验证成功", Toast.LENGTH_SHORT).show();
                }
                else {
                    Toast.makeText(MainActivity.this, "登录失败", Toast.LENGTH_SHORT).show();
                }

            }
        });
    }
    private void init(){
        registerBtn=(Button)findViewById(R.id.register);
        loginBtn=(Button)findViewById(R.id.login);
        userName=(EditText)findViewById(R.id.name);
        password=(EditText)findViewById(R.id.psw);
    }

}

有问题可以私聊,我也是刚学,还有很多东西要去学习

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-05-10 12:02:43  更:2022-05-10 12:02:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 1:25:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码