登陆界面、登陆跳转和进度条功能实现

  首先打开Android studio新建一个空项目,打开layout文件夹下的activity_main.xml文件,来设置登陆界面的布局。登陆界面需要两个输入框,一个用来输入账号,一个用来输入密码,一个登录按钮和一个进度条。具体布局代码实现如下:

 1 <?xml version="1.0" encoding="utf-8"?>
2 <LinearLayout
3 xmlns:android="http://schemas.android.com/apk/res/android"
4 xmlns:tools="http://schemas.android.com/tools"
5 android:layout_width="match_parent"
6 android:layout_height="match_parent"
7 tools:context=".MainActivity2"
8 android:orientation="vertical">
9
10 <!--头部内容-->
11 <RelativeLayout
12 android:layout_width="match_parent"
13 android:layout_height="160dp"
14 android:padding="16dp"
15 android:layout_margin="0dp">
16 </RelativeLayout>
17
18 <!--输入框-->
19 <RelativeLayout
20 android:layout_width="match_parent"
21 android:layout_height="wrap_content"
22 android:padding="16dp"
23 android:layout_margin="0dp">
24
25 <!--账号输入框-->
26 <EditText
27 android:id="@+id/account"
28 android:layout_width="match_parent"
29 android:layout_height="wrap_content"
30 android:layout_marginBottom="16dp"
31 android:hint="账号"/>
32
33 <!--密码输入框-->
34 <EditText
35 android:layout_width="match_parent"
36 android:layout_height="wrap_content"
37 android:id="@+id/password"
38 android:layout_below="@+id/account"
39 android:hint="密码"/>
40 </RelativeLayout>
41
42 <RelativeLayout
43 android:layout_width="match_parent"
44 android:layout_height="wrap_content"
45 android:layout_margin="16dp">
46
47 <!--登录按钮-->
48 <Button
49 android:id="@+id/login"
50 android:layout_width="match_parent"
51 android:layout_height="wrap_content"
52 android:text="登录"
53 android:textColor="#fff"
54 android:background="#008cc9"/>
55
56 </RelativeLayout>
57
58 <!--进度条-->
59 <ProgressBar
60 style="?android:attr/progressBarStyle"
61 android:layout_width="match_parent"
62 android:layout_height="124dp"
63 android:id="@+id/progressBar"/>
64
65 </LinearLayout>

  然后进入我们的MainActivity的Java代码中,在onCreate()方法中实例化我们的几个布局组件:

1         //在布局文件里找到输入框控件
2 EditText editText1 = findViewById(R.id.account);
3 EditText editText2 = findViewById(R.id.password);
4 //找到登录按钮控件
5 Button button = findViewById(R.id.login);
6 //找到进度条控件
7 ProgressBar progressBar = findViewById(R.id.progressBar);
8 progressBar.setProgress(0);//设置进度条进度
9 progressBar.setVisibility(View.GONE);//设置不可见

  使用字符串数组设置一个固定的账号和密码:

1 //设置固定的学生账号和密码
2 String[] account = {"000000"};
3 String[] password = {"123456"};

  这样我们的布局和在Java代码中实例化组件就完成了,下一步需要设置在单击登录按钮后,实现进度条活动和检测账号密码是否正确,并且进行页面跳转。

  接着我们来实现点击按钮后的操作,先给我们实例化的登录按钮设置监视器setOnClickListener();

1 button.setOnClickListener(view -> {
2
3 });
4//我用的是最新版idea,并且是android10.0的模拟器,可能监视器的代码风格会和大家的不一样,正常使用button注册点击监视器即可。

  然后是在按钮监视里写代码(以下代码都是在button的监视器里的代码):

  创建两个字符串来接受我们输入的账号和密码:

1 String getAccount = editText1.getText().toString();
2 String getPassword = editText2.getText().toString();

  用一个if语句来判断我们输入的账号密码:

1 if(account[0].equals(getAccount) && password[0].equals(getPassword)) {
2
3 }
4 else{
5
6 }

  在if里写账号密码正确后的的操作,首先设置我们的进度条为可见模式,然后设置final的int 类型的整型变量来表示完成进度,最后再创建一个线程来实现固定时间进度条运行(以下代码在if中):

  

 1 progressBar.setVisibility(View.VISIBLE);//设置进度条可见
2 final int[] progress = {0};//完成进度
3 new Thread(){//创建一个新线程
4 @Override
5 public void run(){
6   super.run();
7 while(progress[0] < 100){  //progress[0]变量初始化为0,进程每运行一次+1,并且进程会延时30秒,直到变量加到100,也就是说这个进程可以实现让进度条活动3秒之后再进行跳转;
8   progress[0]++;
9   runOnUiThread(() -> progressBar.setProgress(progress[0]));//重新设置新进度
10 try {
11 Thread.sleep(30);//进程延时30秒
12 }catch (InterruptedException e){
13 e.printStackTrace();
14 }
15 }
16 Intent intent = new Intent(MainActivity.this, MainActivity2.class);//使用Intent进行活动跳转,跳转语句需要写在新创建的线程中,不能写在主线程中,不然两个线程并发进行就不能够实现进度条过多少秒后再跳转的功能了
17 startActivity(intent);
18 }
19 }.start();

  if里的语句写好了,在else里加入一个Toast来提示账号密码错误就可以了:

1  Toast.makeText(MainActivity.this, "账号或密码不正确", Toast.LENGTH_SHORT).show();

【注】:我本人使用的使最新版idea和Android10.0 虚拟机,代码框架和风格可能会和大家不一样,如果遇到不支持的写法大家可以去百度一下旧方法进行替换。第一次发博客,还希望大家多提意见。

Android开发之账号密码登录跳转、固定时间显示进度条实现的更多相关文章

  1. Android开发 ---基本UI组件4:拖动事件、评分进度条、圆圈式进度条、进度条控制

    Android开发 ---基本UI组件4 1.activity_main.xml 描述: 定义了一个按钮 <?xml version="1.0" encoding=" ...

  2. shiro整合shiro多验证登录(账号密码登录和使用手机验证码登录)

    1. 首先新建一个shiroConfig  shiro的配置类,代码如下: @Configuration是标识这个类是一个配置文件,在启动时会加载这个类里面的内容,这个配置文件的位置的一定一定一定不能 ...

  3. mongodb副本集加分片集群安全认证使用账号密码登录

    mongodb副本集加分片集群搭建网上资料有很多.粘贴一个写的比较好的.副本集加分片搭建 对于搭建好的mongodb副本集加分片集群,为了安全,启动安全认证,使用账号密码登录. 默认的mongodb是 ...

  4. Mongodb设置账号密码登录

    Mongodb设置.首先设置Data目类和Log目录,然后新建mongodb.conf,设置内容大体如下 port = 27017 #数据目录 dbpath = /usr/softs/data/db ...

  5. Android零基础入门第52节:自定义酷炫进度条

    原文:Android零基础入门第52节:自定义酷炫进度条 Android系统默认的ProgressBar往往都不能满足实际开发需要,一般都会开发者自定义ProgressBar. 在Android开发中 ...

  6. Android特效专辑(十一)——仿水波纹流量球进度条控制器,实现高端大气的主流特效

    Android特效专辑(十一)--仿水波纹流球进度条控制器,实现高端大气的主流特效 今天看到一个效果挺不错的,就模仿了下来,加上了一些自己想要的效果,感觉还不错的样子,所以就分享出来了,话不多说,上图 ...

  7. Android第三方开源SeekBarCompat:音乐类播放器等APP进度条常用

     Android第三方开源SeekBarCompat:音乐类播放器等APP进度条常用 Android平台原生的SeekBar设计简单,然而,比如现在流行的一些音乐播放器的播放进度控制条,如果直接使 ...

  8. Android开发实例之miniTwitter登录界面的实现

    原文: http://www.jizhuomi.com/android/example/134.html 本文要演示的Android开发实例是如何完成一个Android中的miniTwitter登录界 ...

  9. openvpn部署账号密码登录

    1.开启服务器端路由转发功能: 修改配置文件/etc/sysctl.conf中 net.ipv4.ip_forward = 0 改为 net.ipv4.ip_forward = 1 [root@nod ...

  10. 修改官方发行openstack镜像的cloud-init登录方式为账号密码登录

    openstack使用的镜像多为qcow2格式,各个发行商也开源了针对openstack制作的镜像.但是这些镜像的登录方式都是注入用户名和密码的方式,就是说不能够直接通过账号和密码登录.那么如何将一个 ...

随机推荐

  1. 【最佳实践】MongoDB导出导入数据

    首先说一下这个3节点MongoDB集群各个维度的数据规模: 1.dataSize: 1.9T 2.storageSize: 600G 3.全量备份-加压缩开关:186G,耗时 8h 4.全量备份-不加 ...

  2. 【Unity3D】Cesium加载大地图

    1 前言 ​ Cesium 是一个地球可视化平台和工具链,具有数据切片.数据分发.三维可视等功能. ​ Cesium 支持 JS.Unity.Unreal.O3DE.Omniverse 等平台,框架如 ...

  3. 一个基于Vue模型的表单生成器

    哈喽,我是老鱼,一名致力于在技术道路上的终身学习者.实践者.分享者! Vuetify Form Base是一个基于模型的表单生成器,目的是提供一个工具,以便以较少的努力从任何模型数据生成可编辑的表单, ...

  4. [学习笔记]TypeScript查缺补漏(二):类型与控制流分析

    @ 目录 类型约束 基本类型 联合类型 控制流分析 instanceof和typeof 类型守卫和窄化 typeof判断 instanceof判断 in判断 内建函数,或自定义函数 赋值 布尔运算 保 ...

  5. 一张图搞懂sql执行顺序

    冲浪时发现一张很有意思的图,细分了一个长sql语句的执行顺序

  6. STM32CUBEIDE中 Debug 和 Release 的作用/区别/使用场景

    基本主流IDE都有该功能选项例如Keil MDK, IAR, Eclipse, VS等, 这里使用STM32CUBEIDE来举例 创建STM32CUBEIDE工程后默认有2个目标选项 Debug / ...

  7. JavaScript高级程序设计笔记02 HTML中的JavaScript

    HTML中的JavaScript <script>元素 形式 行内 其中的代码会被从上到下解释.计算完成之前,页面其余内容不会被加载,也不会被显式. 外部 下载与解析都会阻塞HTML解析, ...

  8. ChatGLM3-6B:新一代开源双语对话语言模型,流畅对话与低部署门槛再升级

    ChatGLM3-6B:新一代开源双语对话语言模型,流畅对话与低部署门槛再升级 1.ChatGLM3简介 ChatGLM3 是智谱AI和清华大学 KEG 实验室联合发布的新一代对话预训练模型.Chat ...

  9. 牛客多校第二场 I.Penguins

    题意 两个企鹅,一个从地图的右下角走右上角,一个从另一个地图的左下角走到左上角,我们操控左边的企鹅,右边的企鹅与左边企鹅运动规则如下. 左边企鹅向左,右边企鹅向右 左边企鹅向右,右边企鹅向左 左边企鹅 ...

  10. Stable Diffusion扩散模型

    人像生成模型 1.模型理论基础 扩散模型(Diffusion Model): 1.1 Diffusion Model 原理 首先,Denoise Model 需要一个起始的噪声图像作为输入.这个噪声图 ...