返回顶部
首页 > 资讯 > 移动开发 >Android登录的简单处理
  • 328
分享到

Android登录的简单处理

Android 2022-06-06 01:06:15 328人浏览 八月长安
摘要

今天整理一下之前在项目中写的关于某些界面需要登录判断处理。这里整理了一个简易的 Demo 模拟一下 登录情况 和 未登录情况 下的界面跳转处理, 效果如图: 以上分别模拟了,

今天整理一下之前在项目中写的关于某些界面需要登录判断处理。这里整理了一个简易的 Demo 模拟一下 登录情况 和 未登录情况 下的界面跳转处理, 效果如图:

以上分别模拟了,未登录和已登录 情况下的 界面跳转和当前界面事件处理。接下来我们来看一下实现方式。
先从核心代码开始看:


public class GoLoginUtil {
 public static final String CLASSNAME = "className";
 public static final int CODE_LOGIN = 1; // 登录成功回调 用于onActivityForResult 判断
 
 private static void startActivity(Activity activity, Intent intent, int requestCode) {
  if (requestCode == -1) {
   String targetClass = intent.getComponent().getClassName(); // 目标类
   intent.putExtra(CLASSNAME, targetClass);
  }
  intent.setClass(activity, LoginActivity.class); // 跳转重定向到登录界面
  activity.startActivityForResult(intent, requestCode);
 }
 
 public static void startActivity(Activity activity, Intent intent) {
  startActivity(activity, intent, -1);
 }
 
 public static void startActivityForResult(Activity activity, Intent intent) {
  startActivity(activity, intent, CODE_LOGIN);
 }
}

这里可以看到,最主要的就是第一个 private 修饰的 startActivity 方法,看过 Android Activity 的 startActivity 方法源码的应该知道,它里面其实就是调用的 startActivityForResult(intent , -1) . 所以我们这里也来用一下它的写法。如果 等于 -1 ,那么就说明是有跳转目标 Activity 的,那么我们就通过 Intent.getComponent().getClassName() 来获取目标 Activity 的类名,再次添加到 Intent参数中,用于我们登录成功之后的后续跳转目标。当然,intent 中的其他参数是会一直携带着的,这里不用担心其他参数。 不等于 -1 那么就是要进行 setResult 回调了。所以,我们是通过 requestCode 是否等于 -1 来区分是继续跳转,还是回调当前界面。 工具类中的下面两个方法,就把功能区分开了,这里基本上看着系统源码来的。

然后再来进行一下二次封装,这里就需要判断当前 登录状态了,这里我也是模拟一下登录状态,代码如下:


public class IntentUtil {
 public static boolean isLogin; // 模拟获取当前用户登录状态。
 
 public static void startToLogin(Activity activity, Class clazz, Bundle bundle) {
  Intent intent = new Intent(activity, clazz);
  if (bundle != null) {
   intent.putExtras(bundle);
  }
  if (isLogin) {
   activity.startActivity(intent);
  } else {
   GoLoginUtil.startActivity(activity, intent);
  }
 }
 
 public static void startToLoginResult(Activity activity, Bundle bundle) {
  Intent intent = new Intent();
  if (bundle != null) {
   intent.putExtras(bundle);
  }
  GoLoginUtil.startActivityForResult(activity, intent);
 }
}

写到现在这样,基本上需要进行登录跳转界面的,可以直接调用 startToLogin 方法,根据登录状态进行跳转。至于 startToLoginResult 方法,目前还需要在调用时进行判断一下登录状态,进行区分处理,然后还要在 onActivityForResult 方法中进行回调处理,这个暂时没想到其他好的方法,各位大神如果有什么好的处理方式还请多多指教。

这里还没完呢,我们的登录界面也是需要一定的处理逻辑去进行配合的。我们来看一下怎么去配合:


public class LoginActivity extends FragmentActivity {
 private String targetClass;
 @Override
 protected void onCreate(@Nullable Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_login);
  targetClass = getIntent().getStringExtra(GoLoginUtil.CLASSNAME); // 目标跳转类
 }
 public void onLoginClick(View view) {
  // 模拟登录成功操作
  if (!TextUtils.isEmpty(targetClass)) {
   // 这里就是执行继续跳转操作
   try {
    Class clazz = Class.forName(targetClass);
    getIntent().setClass(this, clazz);
    startActivity(getIntent());
    finish();
   } catch (ClassNotFoundException e) {
    e.printStackTrace();
   }
  } else {
   // 这里是登录成功,回调到之前界面 onActivityForResult()中 方法可根据自己需求处理。。
   setResult(RESULT_OK);
   finish();
  }
 }
}

最后来看一下我们的调用方式:



 public void onClick1(View view) {
  Bundle bundle = new Bundle();
  bundle.putString("content", et_content.getText().toString());
  IntentUtil.startToLogin(this, LoginSuccessActivity.class, bundle);
 }
 
 public void onClick2(View view) {
  if (!IntentUtil.isLogin) {
   IntentUtil.startToLoginResult(this, null);
  } else {
   tv_text.setText("登录成功");
  }
 }
 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  if (resultCode != RESULT_OK) {
   return;
  }
  if (requestCode == CODE_LOGIN) {
   tv_text.setText("登录成功");
  }
 }

基本上要整理的就这么多。写法上的一些不足,还请各位多多指点。

Demo 地址

您可能感兴趣的文章:Android开发之登录验证实例教程Android集成新浪微博第三方登录的方法Android设计登录界面、找回密码、注册功能Android实现登录功能demo示例Android开发之注册登录方法示例功能强大的登录界面Android实现代码Android集成微信登录的步骤详解Android属性动画实现炫酷的登录界面Android调用第三方QQ登录代码分享Android开发实例之登录界面的实现


--结束END--

本文标题: Android登录的简单处理

本文链接: https://lsjlt.com/news/21888.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Android登录的简单处理
    今天整理一下之前在项目中写的关于某些界面需要登录判断处理。这里整理了一个简易的 Demo 模拟一下 登录情况 和 未登录情况 下的界面跳转处理, 效果如图: 以上分别模拟了,...
    99+
    2022-06-06
    Android
  • Android 登录处理简单实例(源码下载)
    Android 登录处理简单实例 今天整理一下之前在项目中写的关于某些界面需要登录判断处理。这里整理了一个简易的 Demo 模拟一下 登录情况 和 未登录情况 下的界面跳转处理...
    99+
    2022-06-06
    源码下载 源码 Android
  • Android实现简单QQ登录页面
    Android开发实现极为简单的QQ登录页面,供大家参考,具体内容如下 设计一个简单QQ登录页面,无任何功能。然后打包安装到手机。 1.首先创建一个空白页面 2.打开样式设计的页...
    99+
    2024-04-02
  • Android如何实现简单QQ登录页面
    本篇内容介绍了“Android如何实现简单QQ登录页面”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!设计一个简单QQ登录页面,无任何功能。然...
    99+
    2023-06-30
  • android简单的图形特效处理
    android提供了一些额外更高级的图形图像处理技术,能够让开发者开发出更绚丽的UI界面Matrixandroid提供的一个矩阵工具类,本身并不能读图形或者组件进行变换,但是可以与其他API结合来控制图形、组件的变化步骤:获取Matrix对...
    99+
    2023-06-04
  • tp6 实现简单登录
    配置路由 //登录页面 Route::get('login','Login/login'); 写html表单页面 Title .main{ width: 500px; ...
    99+
    2023-09-20
    php
  • 简单网站登录 python3
    import urllib.request #导入模块 def urlopen(url): req = urllib.request.Request(url) req.add_header("Us...
    99+
    2023-01-31
    网站登录 简单
  • Android 登录Web 时对cookie 处理
    对于登录功能本身没有任何特别,使用httpclient向服务器post用户名密码即可。 但是为了保持登录的状态(在各个Activity之间切换时要让网站知道用户一直是处于登录...
    99+
    2022-06-06
    Web cookie Android
  • 在 Android Studio 中创建一个简单的 QQ 登录界面
    一,创建一个新的 Android Studio 项目         打开 Android Studio,选择 "Start a new Android Studio project",然后填写应用程序名称、包名和保存路径等信息。接下来,选...
    99+
    2023-09-26
    android studio android ide
  • springboot扫码登录的简单实现
    目录前言项目简介实现思路实现步骤前言 本文将介绍基于SpringBoot + Vue + Android实现的扫码登录demo的总体思路,完整代码已上传到GitHub。Web端体验地...
    99+
    2024-04-02
  • springSecurity实现简单的登录功能
    前言 1、不使用数据库,实现一个简单的登录功能,只有在登录后才能访问我们的接口2、springSecurity提供了一种基于内存的验证方法(使用自己定义的用户,不使用默认的) 一、实...
    99+
    2024-04-02
  • Android 简易QQ登录页面
    转发请附上原文链接。点个赞再走啊~ 作者:zzuli昆山玉 ...
    99+
    2022-06-06
    Android
  • Android studio连接MySQL并完成简单的登录注册功能
    近期需要完成一个Android项目,那先从与数据库交互最简单的登陆注册开始吧,现记录过程如下: 此篇文章的小demo主要涉及数据库的连接,以及相应信息的查找与插入。 我已将源码上传至GitHub: h...
    99+
    2023-09-08
    android studio mysql android
  • Python实现简单登录验证
    本文实例为大家分享了简单的Python登录验证,供大家参考,具体内容如下 编写登录接口 要求:1、输入用户名密码    2、认证成功后显示欢迎信息    3、输错三次后锁定 #coding=utf-8 ...
    99+
    2022-06-04
    简单 Python
  • JavaFX登录页面简单实现
    一、准备工作 准备好javaFX开发环境,请详见我上篇文章https://www.sdk.cn/details/wAe9P8mXAq5dbqDl4y 二、项目结构 三、启动类创建Stage public class Main extend...
    99+
    2024-04-02
  • Servlet简单实现登录功能
    本文实例为大家分享了Servlet简单实现登录功能的具体代码,供大家参考,具体内容如下 介绍: Servlet 是 JavaWeb 三大组件之一。三大组件分别是:Servlet 程序...
    99+
    2024-04-02
  • Vue实现简单登录界面
    本文实例为大家分享了Vue实现简单登录界面的具体代码,供大家参考,具体内容如下 实现: 界面实现表单规则校验结合后台 api 校验提示消息 App.vue <template&...
    99+
    2024-04-02
  • Django如何实现简单登录
    这篇文章主要为大家展示了“Django如何实现简单登录”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Django如何实现简单登录”这篇文章吧。创建django项目创建项目的命令行语句: djan...
    99+
    2023-06-25
  • Android Studio实现简单的通讯录
    网上找的一个单页面通讯录,修改之后将添加联系人和修改/删除联系人分为两个独立页面 MainActivity package com.example.test; import...
    99+
    2024-04-02
  • python的tkinter如何实现简单登录
    这篇文章主要介绍“python的tkinter如何实现简单登录”,在日常操作中,相信很多人在python的tkinter如何实现简单登录问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python的tkinte...
    99+
    2023-06-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作