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:不是必须的,看你怎么设计,多看看设计模式

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值