此文末参考链接:

此段代码的教程以及使用接口的方式、switch语句的教程链接为链接1.

汇总里说的有更多的实现方法,为链接2。

文中链接为视觉统一,链接均于文末,以上为方便文中跳转,加了文中的跳转链接。

以下代码为我学习button以及监听器和点击事件相关的简单代码:

直接上代码,讨论与咨询中教程链接于参考链接中(如果需要我将教程文字放上来):

package com.example.felixxiong.uitest;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.Button; //需要添加buton包导入

public class MainActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Button mButton = (Button)findViewById(R.id.button);

mButton.setOnClickListener(new View.OnClickListener(){

@Override

public void OnClick(View view){

Toast.makeText(MainActivity.this.,"点击了Toast",Toast.LENGTH_SHORT).show();

}

});

}

}

以上代码我的初次理解

Button mButton就是赋一个值mbutton,

button findviewbyid就原本是一个返回view,但是因为根据ID里的button就返回一个button实例,这个过程就是Button mButton = (Button)findViewById(R.id.button);

这一行,

下面就是注册一个监听器,调用构造器View.OnClickListener,之后重写onclick,在后面括号里写自己的逻辑?

返回button实例后就是一个向下转型的过程,就是(Button)findViewById(R.id.button);,等号后半段

大体概括是:先取名字,之后获得ID向下转型返回实例,之后注册监听器,重写方法,写自己的跳转逻辑?

关于讨论以及咨询交流汇总

setOnClickListener

GSX:

mButton.setOnClickListener(new View.OnClickListener(){

//注册监听器,调用View.OnClickListener构造器

XY:这不是个类,是个接口

还有的问题在"衔接的问题"

问题:Java中,类使用new就可以当对象使用,所以这里的setOnClickListener是匿名内部类,或者是接口?

GSX:PH说new View.OnClickListener是对象,教程里说里面传入set这个是对象,类变成new不就是当对象使用了,所以等于是对象,new 后面调用构造器,可是XY说set是接口不是构造器,而且我还没到调用接口这一个步骤

XY:应该不是构造器,因为回调函数是一个对象而不是实现的方法

new View.OnClickListener

GSX:new不是定义构造器么?

PH:是对象

XY:接口的new不能是构造方法吧?

问题1:View.OnClickListener是对象,之前说new是引用构造器,new的前面setOnClickListener使用new就可以编程对象使用,对象传入对象?

问题2:new不应该是调用构造器,教程里写的是对象?是不是View.OnClickListener不是构造器?

OnClick()

GSX:Listener之后都是点击逻辑吧?

PH:OnClick()方法内是点击逻辑

问题:toast仅仅是气泡?在实际的开发应用中,这个应该也算是点击之后的逻辑?因为教程中是可以进行实战添加的,点击之后可以出现

toast

GSX:以上代码也可以单独添加toast,还有使用接口的方式也可以实现toast,是不是有两种方法?

PH:这个是写在监听器里的,所以是监听器,点击后的逻辑都是监听器实现的,没监听器就不知道此按钮是否被点击…反正不用监听器,toast做不出来,所以两种方法是不存在的

问题:toast是写在监听器里的么?看教程中点击事件可以根据这种代码即可实现,还有一种方式就是增加switch语句和case中实现,下面的链接2有更多的实现方法……

如果说toast是写在监听器里的,那监听器是不是包括了以下代码:

mButton.setOnClickListener(new View.OnClickListener(){

@Override

public void OnClick(View view){

Toast.makeText(MainActivity.this.,"点击了Toast",Toast.LENGTH_SHORT).show();

}

而不只只是含有以下这一行?

自定义button名称.setOnClickListener(new View.OnClickListener(){

关于本段代码

点击事件

GSX:你们点击事件用的是接口(使用switch语句),还是转换实例向下转型(即本代码)?

XH:点击事件不用接口用什么?

GTF:这个有很多重载的方式

问题:点击事件,以上代码可以作为点击事件(绑定)方式之一,还是仅仅用于注册监听器?

因为链接1以及链接2中也有涉及使用接口进行点击事件(即switch语句的方式)

关于使用接口的方式绑定事件

GSX:教程里还有一个方法就是使用接口点击事件,使用的是switch语句,之后里面有toast,但是仅仅是现在的绑定方法也可以出先toast,但是有人说toast是写在监听器里的,逻辑是在onClick后的括号里面写

PZ:看你怎么设计,都可以实现,一般switch里越简单越好

GSX:Android点击事件都是需要接口的?

PZ:不是必须的,看你怎么设计,多看看设计模式

android按钮点击toast,关于button点击事件中setOnClick等元素的解读以及方法?以及toast的位置以及作用?...相关推荐

  1. android 按钮图片切换动画效果,Button按钮点击图片切换效果

    Button按钮图片切换效果设置. 通常在工程中用到图片按钮点击事件,大多都用ImageButton.在这里我们用 Button的点击事件,在图片的切换过程中不再通过setBackgroundReso ...

  2. Android 保持图片大小,扩大button点击区域

    button图片很小时,点击区域会很小,解决方法: 1.使用ImageButton代替Button.使用src加载图片,图片会保持大小加载.而用background加载会铺满按钮大小.然后此时可用pa ...

  3. html button 点击无效,HTML button点击不了

    divContent前面少个点,checkbox改为checkbox1如下已经可以提交了 /p> Transitional//EN" "http://www.w3.org/T ...

  4. layui table行点击tr_LayUI数据表格行单击事件中选中

    2019年9月5日11:19:17 实现思路 直接修改复选框选中状态和伪复选框(DIV)Class 但是调用checkStatus获取不到选中的行 查看底层源代码checkStatus方法的实现是缓存 ...

  5. Android listView中的button点击事件

    如果listView中的item有button控件,那么如何获取listView中的button控件?又如何在点击button时定位当前的item? 在listview中的listitem设置事件响应 ...

  6. android 监测鼠标滑轮,android2.3 监控鼠标滑动事件

    鼠标滑过图标时(ImageButton), 在button的onTouch事件中,能检测到鼠标的滑动. 1. ViewRoot.javad ispatchMotion(MotionEvent even ...

  7. android按钮怎么事件监听,android 通过监听edittext实现button的点击事件

    如果你没有接第三方的输入设备,那么点击按钮只需找到你的button然后:button.performClick(); 就可以了 那么如果你用到第三方输入法,有些时候监听就没有这么好使了: 以下场景为: ...

  8. 3种方法实现Android按钮的点击事件,建议收藏!

    Button是程序用于和用户进行交互的一个重要控件,相信大家对这个控件已经非常熟悉了,我们平时用的最多的控件之一.既然有Button,那肯定有onClick方法,下面就教大家三种实现点击事件的方法,大 ...

  9. android按钮点击音效

    1.基类抽取-(abstract)BaseActivity 2.单例模式-SoundPoolUtil. 3.SoundPool类Api运用 一.SoundPool: 1.构造函数:SoundPool ...

最新文章

  1. 阿里云https认证
  2. eclipse+ADT下android开发AVD若干问题
  3. Python class 类中 __init__ 函数
  4. oracle中的open,Oracle 深入分析Open过程
  5. 面试官:Spring为什么建议使用构造器来注入?
  6. Kinect安装与配置(openNI2)
  7. .NET 6 Preview 6 正式发布: 关注网络开发
  8. 使用jQuery异步传递含复杂属性及集合属性的Model到控制器方法
  9. jquery/js 点击空白区域隐藏某一个层/元素
  10. Windows Server 2012 +WDK7600.16385.1+VS2008驱动开发环境搭建
  11. KaTeX parse error: No such environment: align
  12. js获取图片原始大小
  13. Python中正则匹配使用findall时的注意事项
  14. redis数据类型之set入门
  15. Android蓝牙开发实战总结
  16. Pikachu漏洞靶场 敏感信息泄露
  17. 2020年阿里云服务器租用价格表(实时更新)
  18. linux txt转化vcf命令,【9.2更新】Vcf转换工具(Excel、TXT转Vcf 和 Vcf转Excel)
  19. Intel无线网卡linux,Gentoo 安装之intel无线网卡篇
  20. cadence软件问题解决集

热门文章

  1. Sparklens:Spark应用程序优化工具
  2. 使用Spring Boot 2.0的Spring Security:保护端点
  3. slf4j绑定器_用于ADFLogger的SLF4J绑定–缺少的部分
  4. 使用log4j2免费分配日志记录
  5. 宏任务和微任务执行顺序_确保任务的执行顺序
  6. jboss as7 下载_JBoss AS 7:定制登录模块
  7. threadlocal_了解ThreadLocal背后的概念
  8. 使用RxJava和SseEmitter进行服务器发送的事件
  9. 带有Hibernate OGM的NoSQL –第三部分:在WildFly上构建REST应用程序
  10. 使用Spring的Hibernate构建Java Web应用程序