Android的sharepreference

本文档展示了Android应用中关于用户登录的实现,包括一键登录的功能实现和用户配置的管理。`UserPrefs`工具类用于处理SharedPreferences的存取操作,如登录状态检查、令牌和用户ID的存储及清除。`LoginActivity`负责界面交互,点击事件触发登录流程,并在登录成功后启动主界面。
摘要由CSDN通过智能技术生成
package com.meetdilse.store.ui.activity;

import android.os.Bundle;
import android.view.View;

import com.meetdilse.store.R;
import com.meetdilse.store.base.BaseActivity;
import com.meetdilse.store.base.OkHttp;
import com.meetdilse.store.data.Login;
import com.meetdilse.store.prefs.UserPrefs;
import com.meetdilse.store.utils.ToastUtil;

/**
 * 登陆
 */
public class LoginActivity extends BaseActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        //清除缓存s
        UserPrefs.clear();//sharepreference清除缓存

        //关闭其他Activity
        finishAll(LoginActivity.class);//这里是广播的方法,到了这个界面就都关闭

        //账号登陆
        findViewById(R.id.button_login).setOnClickListener(v -> startActivity(LoginAccountActivity.class));//点击按键跳转界面

        //一键登陆
        findViewById(R.id.bt_entry).setOnClickListener(this::oneLoginClickListener);
    }//这个this::就是调用方法吧

    private void oneLoginClickListener(View view) {
        OkHttp.create(this).oneClickLogin(5, "android").showProgress().enqueue((call, httpRes) -> {//请求数据
            ToastUtil.out(httpRes.getMsg());//吐司
            if (httpRes.isSuccessful()) {//如果请求成功
                Login login = httpRes.dataFromObj(Login.class);//json解析
                UserPrefs.putToken(login.getToken());//存数据
                UserPrefs.putUserId(login.getUser().getId());
                startActivity(MainActivity.class);//跳转界面
                finish();//销毁该activity,就是点击返回键,不会出现该界面了
            }
        });
    }
}

封装了下面这个工具类
UserPrefs

package com.meetdilse.store.prefs;

import android.content.Context;
import android.content.SharedPreferences;
import android.text.TextUtils;

import com.meetdilse.store.BaseApplication;

/**
 * 2022/01/13 15:20.
 * <p>
 * 用户配置
 */
public class UserPrefs {

    private static SharedPreferences sUserPrefs;

    private static SharedPreferences getSharedPrefs() {
        if (sUserPrefs == null) {
            sUserPrefs = BaseApplication.getContext().getSharedPreferences("user_prefs", Context.MODE_PRIVATE);
        }
        return sUserPrefs;
    }

    public static boolean isLogin() {
        return !TextUtils.isEmpty(getToken());
    }

    public static void putToken(String token) {
        getSharedPrefs().edit().putString("token", token).apply();//主要就是这个,put
    }

    public static String getToken() {
        return getSharedPrefs().getString("token", null);//这个就是get
    }

    public static void putUserId(int userId) {
        getSharedPrefs().edit().putInt("user_id", userId).apply();
    }

    public static int getUserId() {
        return getSharedPrefs().getInt("user_id", 0);
    }

    public static String getStringUserId() {
        return String.valueOf(0);
    }

    public static void clear() {
        getSharedPrefs().edit().clear().apply();
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值