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

此文末参考链接:

此段代码的教程以及使用接口的方式、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:不是必须的,看你怎么设计,多看看设计模式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/336236.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java用什么编译器_Java用Java编译

java用什么编译器在上一篇文章中,我写了关于如何在运行时生成代理的内容,我们已经了解到生成Java源代码的程度。 但是,要使用该类,必须对其进行编译,并将生成的字节码加载到内存中。 那是“编译”时间。 幸运的是&…

app登录界面背景 css_计算机毕业设计中Java web实现简登录页面(MyBatis+jsp+servlet+html+css+javascript)...

点击上方“蓝字”,关注我们.本文利用MyBatisjspservlethtmlcssjavascript实现了一个简单的登录页面。对用户输入的用户名和密码就行校验,校验通过则登录成功,密码和用户信息保存在mysql表中,通过MyBatis访问(MyBatis相关知识可参考…

android strm,Android 关于so文件的随记

1.背景:项目中要集成商汤的活体检测sdk,2.遇到的问题:商汤提供的demo 可以正常运行,但是将sdk集成至项目中时一直报错,但是商汤侧却没办法提供具体的报错原因3.解决问题:反编译商汤的源码发现,报…

工业互联网二级节点建设_建设者还是二传手?

工业互联网二级节点建设不用说,每个对象都需要先创建才能使用。 无论我们是在谈论域,框架,库还是任何其他类型的类,都没有关系。 当您的代码是面向对象的时,这些类仅是对象的定义。 创建对象之前,不能使用它…

android 指针是什么意思,Android系统的智能指针(轻量级指针、强指针和弱指针)的实现原理分析(3)...

提供引用计数器的类RefBase我们就暂时介绍到这里,后面我们再结合智能指针类一起分析,现在先来看看强指针类和弱指针类的定义。强指针类的定义我们在前面介绍轻量级指针的时候已经见到了,就是sp类了,这里就不再把它的代码列出来了。…

【WebRTC---入门篇】(十五)WebRTC信令服务器实现

如何使用socket.io发送消息 io代表整个节点

气味识别应用_代码气味–第二部分

气味识别应用在上一篇文章《代码气味–第一部分》中 ,我谈到了膨胀器:它们是代码气味,可以识别为长方法,大型类,原始痴迷,长参数列表和数据块。 在这一篇中,我想深入研究面向对象的滥用者和变更…

activiti高亮显示图片_如今透明LED显示屏成为广告橱窗,它们之间有什么关联?...

如今我们在街道行走时,我们就会看到各种玻璃橱窗,这是商家想利用橱窗进行不同产品宣传角度。其实无论是海报、灯箱或是实物展示,这些都是商家通过橱窗广告进行来吸引消费者,而现在是5G时代到来使橱窗数字化营销成为了一种新的趋势…

theme editor android,谷歌宣布将于下月停用 Material Theme Editor

使用 Material Theme Editor,开发人员可创建和自定义 Material 主题,包括颜色、形状、版式等等。在 Material Theme Editor 中,可根据不同部分依次选择颜色,并应用于所有组件,还可调整对比度,根据单一颜色自…

【WebRTC---入门篇】(十六)端对端1V1传输基本流程

RTCPeerConnection 媒体协商 setLocalDescription方法 ,收集所有候选者。 setRemoteDescription方法, 放到远端的描述槽中。 协商状态变化

pytorch dataset_【小白学PyTorch】16.TF2读取图片的方法

<>扩展之tensorflow2.0 | 15 TF2实现一个简单的服装分类任务小白学PyTorch | 14 tensorboardX可视化教程小白学PyTorch | 13 EfficientNet详解及PyTorch实现小白学PyTorch | 12 SENet详解及PyTorch实现小白学PyTorch | 11 MobileNet详解及PyTorch实现小白学PyTorch | 10 …

android 硬件对接,Android 对接硬件串口篇

private DispQueueThread DispQueue;private AssistBean AssistData;private SerialControl ComA;Overridepublic void initView() {ComA new SerialControl();//开启串口DispQueue new DispQueueThread();//开启线程实时获取数据DispQueue.start();//线程启动AssistData ge…

【WebRTC---入门篇】(十七)实现1V1音视频实时互动直播系统

STUN/TURN服务器搭建 详细搭建过程 RTCPeerConnection

junit5和junit4_JUnit 5 –架构

junit5和junit4现在我们知道如何设置JUnit 5并使用它编写一些测试 &#xff0c;下面让我们看一下。 在本文中&#xff0c;我们将讨论JUnit 5架构以及采用这种方式的原因。 总览 这篇文章是有关JUnit 5的系列文章的一部分&#xff1a; 建立 基本 建筑 条件 注射 … JUni…

pytorch load state dict_PyTorch 学习笔记(五):Finetune和各层定制学习率

本文截取自《PyTorch 模型训练实用教程》&#xff0c;获取全文pdf请点击&#xff1a;https://github.com/tensor-yu/PyTorch_Tutorial [toc]我们知道一个良好的权值初始化&#xff0c;可以使收敛速度加快&#xff0c;甚至可以获得更好的精度。而在实际应用中&#xff0c;我们通…

华为配备鸿蒙系统的手机,华为P50/新平板双双来袭!全球首发鸿蒙系统:配置都非常强悍...

【12月12日讯】相信大家都知道&#xff0c;华为方面已经正式官宣&#xff0c;将会在12月16日正式推出鸿蒙系统首个手机Bate版本&#xff0c;但也有很多网友们担忧&#xff0c;华为手机在脱离了Android系统以后&#xff0c;鸿蒙OS系统是否真的可以击败Android系统&#xff0c;第…

【WebRTC---入门篇】(十八)WebRTC非音视频数据传输

WebRTC传输非音视频重要API createDataChannel options ordered 在传输非音视频的时候是否是按序到达的。 maxPacketLifeTime/maxRetransmits 最大包存活时间;最大传输次数。两者二选一 negotiated ID 唯一标识 DataChannel事件

ios 静音模式_静音设计模式

ios 静音模式您最近是否遵循Mute-Design-Pattern™编写了大量代码&#xff1f; 例如 try {complex();logic();here(); } catch (Exception ignore) {// Will never happen heheSystem.exit(-1); }Java 8有一个更简单的方法&#xff01; 只需将这个非常有用的工具添加到您的Ut…

datatable使用_使用Streamlit从简单的Python脚本创建交互式WebApp

如果有人告诉您可以使用150-200行代码创建交互式Web应用程序&#xff0c;该怎么办&#xff1f; 有趣的权利。 Streamlit为您提供了使用简单的python脚本和一些streamlit调用来创建漂亮的Web应用程序的相同机会。Streamlit是一个开放源代码框架&#xff0c;用于以最快的方式创建…