Android Studio:基本事件处理之Toast、Snackbar、AlertDialog

一、 实验题目 

事 件 处 理

【目的】

1.了解 Android 编程基础

2.熟悉 ImageView、Button、RadioButton 等基本控件,能够处理这些控件的基本事件

3.学会弹出基本的对话框,能够定制对话框中的内容,能对确定和取消按钮的事件做处理

二、 实现内容

实现一个 Android 应用,界面呈现与上个实验基本一致,要求:


(1)该界面为应用启动后看到的第一个界面

【其中输入学号和密码的控件要用 TextInputLayout 实现】

(2)点击图片,弹出相应的对话框(图略)

(3)切换RadioButton的选项,会弹出相应的Snackbar提示

(4)点击登录按钮依次判断学号是否为空,密码是否为空,用户名和密码是否正确;不正确则给出错误信息,如学号和密码都正确则提示“登录成功”

(5)点击注册按钮,如果切换选项时,RadioButton 选中的是“学生”,那么弹出 Snackbar 信息“学生注册,功能尚未启用”,如果选中的是“教职工”,那么弹出 Toast 信息“教职工注册功能尚未启用”。

三、 实验过程

这次实验是基于上次实验保留的工程文件,布局代码稍作改动,并增加了很多“事件处理”功能。我按实验要求一步步将功能加以实现,过程如下:

(1)应用启动后看到的第一个界面 【使用TextInputLayout控件】

从示例图可以看到,这次app的启动界面和上次的唯一差别便如下:

  -------->> 

于是将原来此位置的相关布局控件删除,在build.gradle(Module:app)添加依赖如下:

 

再在activity_main.xml布局文件中加入TextInputLayout控件,每个TextInputLayout里面包含一个EditText。设置好控件位置与text输入格式。

 

 

在MainActivity.java中对其做如下的设置,这样在输入text时左上角会出现浮动标签。

 

在完成此步骤时遇到了一个问题:启动app后,初始界面的EditText已默认被选中。

于是TextInputLayout的画面不是→,而是→

按网上方法,在EditText的父节点增加了如右代码:

即是将原本的焦点移除了,问题得以解决。

 

(2)点击图片,弹出相应的对话框  

 

弹出的对话框如左。并要求 ↓

1 点击“拍摄”选项,弹出 Toast 信息“您选择了[拍摄]”;

2 点击“从相册选择”选项,弹出 Toast 信息“您选择了 [从相册选择]”;

3 点击“取消”按钮,弹出 Toast 信息“您选择了[取消]”。

在了解AlertDialog和Toast相关知识后,我先在MainActivity.java里创建了一个新的AlertDialog对话框,并在其中放入列表{“拍摄”,“从相册选择”},点击列表选项,判断下标,然后会弹出对应的toast信息。

接着再获取图片id,为其绑定一个监听器,click之后,之前设置的那个AlertDialog便会通过show()将我们所要的对话框展示出来。

 

 

(3)切换RadioButton的选项,会弹出相应的Snackbar提示

在了解Snackbar相关知识后,通过id获取RadioButton,对其监听如下:

 

其中【.setAction】使该 Snackbar 右侧按钮可以被点击并弹出一个Toast信息。【.setActionTextColor(getResources().getColor(R.color.colorPrimary))】是对Action颜色的设定,【 .setDuration(5000)】是对snackbar停留时延的设定(ms)。

最后根据RadioButton的不同显示不同的Snackbar信息。

格式例如: 

 

(4)点击登录按钮依次判断学号是否为空,密码是否为空,用户名和密码是否正确;不正确则给出错误信息,如学号和密码都正确则提示“登录成功”。

【正确的学号和密码分别为“123456”,“6666”】

先是对“登录”Button绑定监听。再通过.getEditText().getText().toString()获取TextInputLayout输入的字符串,对其内容进行判断。若判断“学号/密码为空”则通过对TextInputLayout设置

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值