Android开发--Button组件与点击事件

Button控件

学习完了上篇博客关于TextView控件的使用,今天我们来学习下一个控件Button

上一篇博客链接:Android学习——TextView简单控件的使用-优快云博客

Button是什么

button,在英文中的意思是按钮,纽扣。所以Button我们叫他按钮控件。我们随便打开一个软件,比如:微信红包的页面。

这个页面大家应该很熟悉,当我们输入完金额之后,点击“塞钱进红包”之后,便可以给你爱的人发红包了。这里的“塞钱进红包”,使用的正是一个按钮控件,也就是Button。

这里大家应该很好理解,Button控件就是软件上的一个个小按钮,下面我们来学习一下这个控件,在学习之前,我们先来了解一下点击事件。

点击事件

还是刚刚微信红包的例子,当你点击了“塞钱进红包”之后,会发生什么?你的手机会执行哪些任务呢?第一步是不是需要让你输入密码?输入完之后,连接到你的钱包,或者银行卡。紧接着判断金额是否足够,如果足够的话,便可以把你的浅浅塞进这个电子红包里面。这就是点击这个按钮之后会发生的故事。

所以“点击事件”就很好理解啦,就是在你点击完按钮之后会执行的操作,我们就称为触发事件。

使用Button

了解完了触发事件,下面我们来学习如何使用Button控件以及设置触发事件。

第一步,我们来看一下再xml布局文件里面如何创建Button这个控件,话不多说,先展示代码:

  <Button
      android:id="@+id/bt_test"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="按钮控件"
      android:background="#ffcc00"
      android:textColor="#ffffff"
      android:textSize="30dp"
      />

添加完之后,是这样一个效果:

id:不必多说了,这个是控件唯一的身份证

layout_width
layout_height

这两个也更不必多说了,还不懂的uu可以参考上一篇博客Android学习——TextView简单控件的使用-优快云博客

紧接着是text,background等属性,也不用多说了。看着是不是有点像TextView控件?如果你这样觉得,那说明你的感觉是正确的。事实上,Button这个控件是继承于TextView的,我们不妨看一下源代码

只不过不同的是,Button默认是有背景的,但是TextView默认是没有背景的,你可以自己尝试一下,很简单

在Activity里面使用Button

说完了Button外观的设计,下面就来说说如和在我们的Activity里面使用Button,并且设计点击事件

话不多说,先直接上源代码:

package com.example.test01;

import androidx.appcompat.app.AppCompatActivity;

import android.annotation.SuppressLint;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import com.example.test01.util.DateTime;

public class RealtiveActivity extends AppCompatActivity {
    private Button button_get;
    private TextView textView;

    @SuppressLint("MissingInflatedId")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_realtive);
        textView = findViewById(R.id.tv_result);
        button_get = findViewById(R.id.bt_get_time);
        button_get.setOnClickListener(new ViewMyClick(textView));
    }
//构造一个静态的内部类,实现了View.onClickListener的接口
    static class ViewMyClick implements View.OnClickListener {
        private final TextView textView;
        //添加构造方法
        public ViewMyClick(TextView textView){
            this.textView = textView;
        }
        @Override
        public void onClick(View view) {
            String desc = String.format("%s 您点击了按钮 : %s", DateTime.getTimeNow(),((Button)view).getText());
            textView.setText(desc);
        }
    }
}

其中么,最主要的有这两部分代码

1.findViewById();也就是与我们的按钮进行捆绑,找到你需要的那个按钮控件,如何去找,那就是使用我们之前给控件设置过的身份证,也就是id

private Button button_get;

 button_get = findViewById(R.id.bt_get_time);

再然后就是设置Click事件

button_get.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //在这里面写点击后要执行的过程
            }
        });

熟悉java的小伙伴我们都知道,这种方法使用的事java里面的匿名内部类,如果一个Actitity里面有一两个按钮还好,如果有很多个按钮的话,这样子使用那就比较麻烦啦,所以嘞,我们可以这样写。

package com.example.test01;
import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
public class JumpFirstActivity extends AppCompatActivity implements View.OnClickListener {
    @SuppressLint("MissingInflatedId")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_jump_first);
        //设置按钮的点击事件
        findViewById(R.id.bt_jump_second).setOnClickListener(this);
    }
    @Override
    public void onClick(View view) {
        if(view.getId()==R.id.bt_jump_second){
            //这里写上按钮点击后需要执行的代码
        }
    }
}

这种方式是通过实现View.OnClickListener这个接口的方式去设置点击事件,实现接口就需要重写接口里面的方法,也就是onClick()方法。当按钮数量多起来的时候,就可以在重写的方法里面进行id()的判断。

onClick(View view);里面的参数View就是我们传进去的Activity,使用setOnClickListener(this);意思可以理解为把我们获取到的按钮穿进去了,所以在方法里面我们使用view.getId();来判断是哪一个按钮被点击了。

OK,以上就是Button按钮控件的基本使用啦。

如果你有任何的疑问,可以评论留言,也可以加我的v:whszs23333

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值