一、手机APP部分
1.(入口)登录代码的详细执行流程
这段代码的执行流程可以分解为以下几个步骤:
1. 启动活动:
- 当用户启动应用程序并进入登录页面时,
DengLu
活动被创建。onCreate()
方法被调用,这是Android活动中生命周期的一部分。
2. 初始化界面:
- 在
onCreate()
方法中,首先通过requestWindowFeature(Window.FEATURE_NO_TITLE)
移除了默认的标题栏。 - 然后使用
setContentView(R.layout.activity_denglu)
设置了该活动的布局文件,即activity_denglu.xml
,它定义了登录页面的UI元素。 - 接着,
textView
变量与布局中的提示文本视图关联,并设置了欢迎信息和颜色。
3. 控件初始化:
- 调用
init()
方法来初始化控件,包括登录按钮、用户名输入框、密码输入框等。 - 对于提示信息文本,设置了一个滚动效果(虽然实际在TextView上设置
setSelected(true)
通常不会产生滚动效果,这可能是作者想要实现的效果但方法不正确)以及显示欢迎信息。
4. 设置监听器:
- 为登录按钮设置点击事件监听器,当用户点击登录按钮时会触发此监听器内的逻辑。
5. 获取用户输入:
- 用户点击登录按钮后,
getEditString()
方法会被调用来获取用户输入的用户名和密码,并去除首尾空格。
6. 验证用户输入:
- 首先检查用户名是否为空,如果为空,则弹出一个短时间的Toast消息提示用户输入用户名。
- 如果用户名不为空,接着检查密码是否为空,同样地,如果密码为空则提示用户输入密码。
- 如果用户名和密码都不为空,那么就进行下一步验证。
7. 验证凭据:
- 检查用户输入的用户名和密码是否匹配预设值(在这个例子中是硬编码的"admin"和"1234")。如果匹配成功,则表示登录成功。
- 如果用户名或密码不匹配,则弹出消息提示用户密码错误或用户名不存在。
8. 处理登录成功:
- 如果登录成功,程序会创建一个新的意图(Intent),并将结果设置为
RESULT_OK
,然后销毁当前活动(finish()
)。 - 最后,启动新的活动(
MainActivity
),将用户引导到应用程序的主要界面。
9. 处理登录失败:
- 如果登录失败,程序会弹出一条消息给用户,告知他们密码错误或用户名不存在,用户需要重新输入正确的凭据。
请注意,这段代码中的用户验证部分仅适用于演示目的,因为它直接在代码中比较了用户名和密码。在实际应用中,应避免在客户端代码中硬编码凭据,并且应该通过安全的方式(如HTTPS请求到服务器端验证)来进行用户认证。此外,show_tv.setSelected(true);
这一行看起来是为了尝试实现一些视觉效果,但实际上对于 TextView
来说,这不是标准的做法,可能不是作者的本意。
2.部分疑惑点
为什么一启动应用程序就会进入登陆页面?
当用户启动应用程序并进入登录页面时,这取决于应用程序的主活动(Launcher Activity)是如何配置的。在Android应用中,AndroidManifest.xml
文件定义了应用的结构和行为,包括哪些活动是应用程序的一部分以及哪一个活动是启动时首先显示的。
2.1 为什么启动应用程序就会进入登录页面?
这是因为开发者在 AndroidManifest.xml
文件中指定了 DengLu
活动作为应用程序的启动活动(Launcher Activity)。通常情况下,你会看到类似下面的配置:
<activity android:name=".DengLu">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
这段配置告诉Android系统,当用户从设备的应用列表中启动这个应用程序时,应该打开 DengLu
活动作为应用程序的第一个界面。因此,当用户点击应用程序图标启动它时,他们将直接被引导到登录页面。
3.代码
package com.shiqi.lianjieonenet;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;