教我徒弟Android开发入门(二)
前言:
上一期实现了简单的QQ登录效果,这一期继续对上一期进行扩展
本期的知识点:
Toast弹窗,三种方法实现按钮的点击事件监听
正文:
Toast弹窗其实很简单,在Android Studio中打上toast,之后按下tab键就能快捷生成一个Toast
Toast.makeText(CurrentActivity.this, "内容", Toast.LENGTH_SHORT).show();
括号中的三个参数,第一个是context(上下文,在哪里显示Toast),第二个是一个String字符串,也就是Toast显示的内容,第三个是Toast显示的时间,short是短的意思
这样就能实现弹出Toast,我将之前弹出对话框的代码修改成了下列的代码,this就是指当前的activity,这样可以省略的写
关于监听事件,可能我没有讲解得太清楚,拿上面的那个例子来说,我们是让当前的那个activity实现了一个监听接口,之后复写它的onClick方法,通过findviewbyid找到button的实例,调用setOnClickListener为其绑定监听器,之后,当用户点击button按钮,就会进入到onClick方法之中,由v.getid获得当前用户点击的view的id,之后进入到一个switch分支语句之中,id与R.id.button相同,就执行该分支,也就是弹出一个Toast,不只是button,其他的textview,linearlayout等等控件或者是根布局也是可以设置监听器的
我总结了五种实现时间监听器的方法,可能说法不是正确,不过,知道方法就行了,不必纠结细节
实现事件监听器的方法:
- 内部类形式
- 外部类形式
- Activity本身作为事件监听器类
- 匿名内部类形式
- 直接绑定到标签
内部类形式
将事件监听器类定义在当前类的内部

public class Test extends Activity{
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button)findViewById(R.id.about);
MyButtonlistener listener = new MyButtonlistener();
button.setOnClickListener(listener);
}
class MyButtonlistener implements View.OnClickListener{
@Override
public void onClick(View v) {
//相关事件处理
}
}
}

外类类形式
Test类

public class Test extends Activity{
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button)findViewById(R.id.about);
MyButtonlistener listener = new MyButtonlistener();
button.setOnClickListener(listener);
} }

MyButtonlistener类

public class MyButtonlistener implements View.OnClickListener {
@Override
public void onClick(View v) {
//事件处理
}
}

Activity本身作为事件监听器类
将Activity本身作为事件监听器类

public class Test extends Activity implements View.OnClickListener{
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button)findViewById(R.id.about);
button.setOnClickListener(this); } @Override
public void onClick(View v) {
//事件处理
}
}

匿名内部类形式

public class Test extends Activity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button)findViewById(R.id.about);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//事件处理
}
});
}
}

直接绑定到标签
在xml的布局文件中加入onClick属性,设置相关的方法
定义一个方法,记得参数是View
想深入了解的还可以看一下这一篇:Android开发之基于监听的事件处理
教我徒弟Android开发入门(二)的更多相关文章
- 教我徒弟Android开发入门(一)
前言: 这个系列的教程是为我徒弟准备的,也适合还不懂java但是想学android开发的小白们~ 本系列是在Android Studio的环境下运行,默认大家的开发环境都是配置好了的 没有配置好的同学 ...
- 教我徒弟Android开发入门(四)
本期知识点: 两大常用布局的简单介绍 在我们的APP使用第三方库 Android Studio常用快捷键 一.两大常用布局 1.LinearLayout线性布局 线性布局,可以垂直显示或者水平显示,设 ...
- 教我徒弟Android开发入门(三)
前言: 老实说,我有点不知道该讲什么了,希望看过的人能给我提提意见,感激不尽. 本期知识点: 长按事件,log的简单使用,双击退出程序功能的实现 正文: 上一期我们了解到点击事件其实就是让控件绑定一个 ...
- Android开发入门
教我徒弟Android开发入门(一) 教我徒弟Android开发入门(二) 教我徒弟Android开发入门(三) 出处:http://www.cnblogs.com/kexing/tag/Androi ...
- Android开发入门要点记录:四大组件
cocos2dx跨平台开发中需要了解android开发,昨天快速的浏览了一本Android开发入门教程,因为之前也似懂非懂的写过Activity,Intent,XML文件,还有里面许多控件甚至编程思想 ...
- [译]:Xamarin.Android开发入门——Hello,Android Multiscreen深入理解
原文链接:Hello, Android Multiscreen_DeepDive. 译文链接:Xamarin.Android开发入门--Hello,Android Multiscreen深入理解. 本 ...
- [译]:Xamarin.Android开发入门——Hello,Android深入理解
返回索引目录 原文链接:Hello, Android_DeepDive. 译文链接:Xamarin.Android开发入门--Hello,Android深入理解 本部分介绍利用Xamarin开发And ...
- [译]:Xamarin.Android开发入门——Hello,Android快速上手
返回索引目录 原文链接:Hello, Android_Quickstart. 译文链接:Xamarin.Android开发入门--Hello,Android快速上手 本部分介绍利用Xamarin开发A ...
- Android开发入门经典【申明:来源于网络】
Android开发入门经典[申明:来源于网络] 地址:http://wenku.baidu.com/view/6e7634050740be1e650e9a7b.html?re=view
随机推荐
- Hive 多分隔符的使用 (转载)
方法一)通过org.apache.hadoop.hive.contrib.serde2.RegexSerDe格式的serde. 1) 建表语句 #指定以^|~作为分隔符 CREATE TABlE ta ...
- UML学习网址列表
在线绘图工具ProcessOn:https://www.processon.com/support#mind-format 鲁棒图实例:http://blog.csdn.net/joeyon1985/ ...
- mybatis_SQL映射(3)
文章摘录自:http://blog.csdn.net/y172158950/article/details/17304645 1. 表关联 a) 嵌套查询(传说中的1+N问题) <resultM ...
- YAML书写规范
1. 认识 YAML YAML是一个类似 XML.JSON 的标记性语言.YAML 强调以数据为中心,并不是以标识语言为重点.因而 YAML 本身的定义比较简单,号称"一种人性化的数据格式语 ...
- JVM之对象的创建简要流程
- IDEA翻译插件推荐Translation 安装和使用以及快捷键绑定
首先第一步是安装该插件 如图: File -> setting -->plugins 进入该页面,点击如图所示按钮. 然后搜索 Translation 如图: 我们需要的结果一般都不会排在 ...
- Spring怎么引入多个xml配置文件
方式一:在web.xml中通过<context-param> 标签引入 <context-param> <param-name>contextConfigLocat ...
- python3 第十六章 - 函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可以自己创建函数,这被 ...
- Duilib学习(一)
#pragma once #include <UIlib.h> using namespace DuiLib; #ifdef _DEBUG # ifdef _UNICODE # pragm ...
- Css的优先级机制
样式的优先级 多重样式(Multiple Style):如果外部样式.内部样式.内联样式同时应用于同一个元素,就是使用多重样式的情况. 一般情况优先级如下: (外部样式)External style ...