Android 基础课堂 - Lesson.6 - 如果登录成功了

Android 基础课堂

上周我们已经写完登录界面啦,也测试过登录成功和登录失败的情况了,回想一下我们在登录成功和登录失败的时候,分别做了啥呢,没错,成功和失败我们都是弹出一个toast告诉用户登录失败了或者登录成功了,然而现实的场景是什么样的呢。
在现实场景中,如果我们登录失败了,那么弹出一个toast来告知用户,这个是没有问题的,那么登录成功了呢?当然是不能弹出一个toast然后啥都不做的,正常情况下,我们都应该跳转到一个另外的页面,让用户进入到我们的APP,好,本周我们就将继续推移下去,看看登录成功的时候该做些什么。

第六课、如果登录成功了

  • 一、场景分析

    • 现在的APP,一般有以下两种场景:
    • ① 刚一进入APP,就到了登录页面,用户必须通过登录才能进入到APP,才能浏览我们APP里的其他页面
    • ② 刚一进入APP会先到达我们的主页面,用户可以对APP内的一部分页面进行浏览,而有些页面的浏览是需要登录的,当用户点击这些页面时,会唤起登录界面,让用户进行登录。一般这样的APP在个人中心也会有一个登录按钮的,通过点击登录按钮可以唤起登录界面
    • 以上两种情况其实总体上没有太大的区别,第一种是先有登录页面,成功后唤起一个新的页面,第二种是由一个其他页面唤起登录界面,登录成功时候,做一些需要的处理然后把登录页面杀掉,这里我们主要就第一种情况进行讨论,了解了这种情况那么第二种情况自然也就能清楚的了解了
    • 所以就第一种情况而言,就是我们上节课做的,先进入到了一个登录页面,然后让用户进行登录,用户登录失败的时候,弹出一个toast告知用户,用户登录成功的时候,我们也可以弹出一个toast告知用户登录成功了,但是只是弹出一个toast是不行的,如果登录成功了还是在登录页面,那我们登录的意义是什么,用户就只能在一个登录页面登录着玩了,所以当用户登录成功的时候,我们还需要进行页面跳转的处理,将页面跳转到我们希望用户进入到的首页面,所以,该课我们主要讲下两个activity跳转相关的内容。

  • 二、Activity的几种跳转方式
    • 讲到Activity的跳转,我们需要先来了解下Intent,这是跳转中最重要的东西,Intent的中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的交互。因此,可以将Intent理解为不同组件之间通信的“媒介”专门提供组件互相调用的相关信息,
    • ① 显示调用方法:它的简单使用如下
    • - Intent intent=new Intent(this,OtherActivity.class); //方法1
    • - startActivity(intent2);
    • 以上是Intent在跳转Activity时最简单的操作在一个Activity中通过startActivity()来跳转到另外一个Activity,此时我们就能成功的从登录页面跳转到一个我们想要跳转到的页面了,由于是从登录页面跳转的,所以在我们调用startActivity()之后,需要再调用下LoginActivity.this.finish()把登录页面销毁掉,不然用户点击返回按钮会回到登录页面,这是不合理的
    • 关于Intent的相关知识还有很多,它的作用非常大,感兴趣的话可以对它专门了解下
    • ② 隐式调用方法(只要action、category、data和要跳转到的Activity在AndroidManifest.xml中设置的匹配就OK)

    -

    • 如上图,假定有一个Activity在清单中是这样的声明的,两个都可以,那么我们就可以使用以下代码进行跳转到上面这个Activity中:
    • 总之跳转离不开Intent,掌握好Intent将会使我们游刃有余的应对跳转

  • 三、数据传递
    • 既然我们已经讲了页面跳转相关的内容了,那么数据传递的内容也就在此一起提一下,数据传递是什么概念呢,举个最直接的场景吧,在登录页面,如果我们是使用用户名进行登录的,那么如果要实现登录成功后,跳转到新页面之后,在底部显示一个欢迎语,欢迎内容为“hello,xxxx”,这个xxxx即为该用户的用户名,那么我们是不是需要将登录页面的用户名传递到我们新唤醒的页面用于显示,这时候,在跳转Activity的时候,就需要连带传输数据了,那么我们就来看看数据的传递,我们主要看看我们最常用的方法,即使用Bundle进行传值
    • Bundle主要用于传递数据;它保存的数据,是以key-value(键值对)的形式存在的,我们经常使用Bundle在Activity之间传递数据,传递的数据可以是boolean、byte、int、long、float、double、string等基本类型或它们对应的数组,也可以是对象或对象数组。当Bundle传递的是对象或对象数组时,必须实现Serializable 或Parcelable接口,简单用法如下
    • Intent intent=new Intent(this, OtherActivity.class);
    • intent.setClass();
    • Bundle bundle = new Bundle();
    • bundle.putString("标记", "放入数据");
    • intent.putExtras(bundle);
    • startActivity(intent);
    • 通过以上步骤,我们就可以将Bundle传递到跳转到的Activity里了,自然Bundle里的数据也就一起传递过去了,那在第二个Activity里该怎么接受数据呢,可以通过getIntent().getExtras().get("key");来获取到指定key的数据,这个key就是之前设置在Bundle里面的,简单是数据传递就是这样的,甚至可以不用Bundle而直接用Intent来传递数据,还可以使用其他方法来传递,都可以通过实践来尝试看看

    • 好了,到这我们已经完成登录成功后的跳转处理及数据传递了,关于跳转和数据传递的知识还有太多太多,不可能通过这一次全都涵盖,可以考虑将他们更完整的过一遍,这将会使我们在今后遇到这方面问题时更加游刃有余,本周的基础课堂就到这啦,让我们下周再见~
分享者:
陌眠 封羽(代发)
时间: 2024-07-28 20:49:30

Android 基础课堂 - Lesson.6 - 如果登录成功了的相关文章

Android 基础课堂 - Lesson.5

Android 基础课堂 上周我们已经写完了登录的界面啦,界面布局挺简单的,学起来不难吧,对了,我们也说了,要实现相同的布局效果,还有很多其他的实现方式,怎么样,有没有尝试用其他的写法去实现看看呢. 既然我们已经写完登录的界面了,那么本周我们该干点啥呢?没错,当然是开始做登录的逻辑处理了,那么需要在登录页面做啥呢,很简单,首先要获取用户输入的账号密码嘛,然后就是登录按钮的点击监听了. 第五课.交互初体验 -- 登录 一.登录交互分析 登录界面我们都再熟悉不过了,登录界面需要做的事情,我们自然也很

Android 基础课堂 - Lesson.4

Android 基础课堂 上周我们讲了Android里的五大布局,学会了五大布局就有了搭建一个界面的基础了,但是简单的用一种布局是不行的,真正的开发中,避免不了多种布局的嵌套,各布局的属性也比较多,这些都需要亲自动手去尝试尝试,才能真正的掌握. 本周的内容呢,就让我们来搭建我们的APP的第一个界面吧,那么我们从哪入手呢,在现在的APP中,大多数都是含有登录界面的,登录是大部分APP必不可少的一部分,所以呢,我们就从登录界面开始吧,那么,就让我们进入本周的基础课堂吧. 第四课.从登录界面开始 一.

Android 基础课堂 - Lesson.3

Android 基础课堂 经过上一周的小课堂,我们已经成功创建一个Android工程啦,也知道了四大组件中使用最多的Activity,本周呢,按正常情况来看,我们是应该开始那个我们一直说的APP的开发了,好,那么就让我们正式进入开发吧. 既然要进入开发了,那么就让我们一步步来,首先先从搭建一个布局开始,于是乎,我们本周的小课堂,就得讲一讲Android里的五大布局了,这个嘛基础知识点,可能会比较乏味,不过还是很有必要理解的,把这些搞懂是今后做布局的第一步嘛,好了,让我们进入今天的Android基

Android 基础课堂 - Lesson.2

Android 基础课堂 在上周的基础课堂中,我们说过了,本系列的基础课堂将会结合一个应用的开发过程慢慢带大家慢慢深入理解Android开发的过程,故该基础课堂和正常的Android入门教程不太一样,不会像正常的Android入门教程那样,巴拉巴拉的从四大组件.各种控件等等开始讲,而是会遵从用到什么讲什么的原则,然后慢慢 涵盖各组件.各控件,在实际场景中学习组件.控件的应用,我觉得对于入门来说,是比较好接受的,当然入门之后,我们可以反过来把Android的整体架构再理一遍过去,这时候来理架构比起

android应用重复升级,客户端无法登录成功

问题描述 android应用重复升级,客户端无法登录成功 麻烦各位大神帮忙解决个问题,我的android应用在升级的时候,每次登录都会出现升级提示,升级成功之后再次登录客户端,还是提示升级.这样的话,客户端就登录不进去了.有人说是路由器的缓存策略导致的,可是我还是想不到解决办法! 解决方案 应该是网络缓存的原因,没能下载到最新的包 解决方案二: 通过每次生成不同的包的名字应该可以解决,但是这个是要更换下载地址,怎样在不改变下载地地址的情况下解决网络缓存的问题?各位大神有 没有好的解决方法 ? 解

android easeUI 3.0 登录失败 303 Unknown server error.换回2.0就可以登录成功,请问啥错啊

问题描述 解决方案 测试可以登陆了,你再试试解决方案二:我也试过了,同样的问题,3.0登录失败,2.0登录成功解决方案三:@Ice Butterfly 现在还有这样的情况?登陆失败? 把具体报错信息贴出来看看解决方案四:登录时日志:03-23 10:45:32.744: D/LoginActivity(617): EMClient.getInstance().login03-23 10:45:32.745: D/ONE SDK(617): [2016/3/23 10:45:32:745]: em

Android+struts2+json方式模拟手机登录功能

涉及到的知识点:  1.Struts2框架的搭建(包括Struts2的jSON插件)   2.Android前台访问Web采用HttpClient方式.   3.Android采用JSON的解析. 服务端主要包含一个Action,通过struts的web配置配置struts.xml驱动业务逻辑的执行,然后对于符合条件的登录,返回给客户端通过jsonobject包装的数据. 服务端代码: package com.easyway.json.android;      import java.util

Android:利用SharedPreferences实现自动登录

本文介绍了Android:利用SharedPreferences实现自动登录,具体如下: 主要代码: public class LoginActivity extends Activity { private EditText username; private EditText userpassword; private CheckBox remember; private CheckBox autologin; private Button login; private SharedPref

为什么服务器登录成功不显示ip,而是显示ID

问题描述 为什么服务器登录成功不显示ip,而是显示ID 解决方案 http://zhidao.baidu.com/link?url=Stgbd-8CerJPt6Xcjp5yNnhWpqw8Xe9oM1nVkrten3ljIb0ZgZIKkbLQ2qoHNQinWpWSNd0o5gCR6Rf0ie0E4iMobGqh2A11TK8FxAlCE3K 解决方案二: 登录成功 显示 用户名