Android 简单控件 - -4.按钮控件 button

系列文章目录


前言

提示:以下是本篇文章正文内容,下面案例可供参考

1.按钮控件Button

按钮控件Button由TextView派生而来,它们之间的区别有:
⭕️Button拥有默认的按钮背景,而TextView默认无背景;
⭕️Button的内部文本默认居中对齐,而TextView的内部文本默认靠左对齐;
⭕️Button会默认将英文字母转为大写,而TextView保持原始的英文大小写;

1.1按钮控件的新增属性

与TextView相比,Button增加了两个新属性:
textAllCaps属性,它指定了是否将英文字母转为大写,为true是表示自动转为大写,为false表示不做大写转换。
onClick属性,它用来接管用户的点击动作,指定了点击按钮时要触发哪个方法;

在这里插入图片描述
onclick 过时了但是还能用,现在使用setOnclickListener多点 ,
在这里插入图片描述

2. 点击事件和长按事件

2.1 点击事件

监听器,意思是专门监听控件的动作行为。只有控件发生了指定的动作,监听器才会触发开关去执行对应的代码逻辑。
按钮控件有两种常用的监听器:
1️⃣点击监听器,通过setOnClickListener方法设置。按钮被按住少于500毫秒时,会触发点击事件。
2️⃣ 长按监听器,通过setOnLongClickListener方法设置。按钮被按住超过500毫秒时,会触发长按事件。

在这里插入图片描述


    private TextView tv_btn_result;// 全局
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_button_click);
        tv_btn_result = findViewById(R.id.tv_btn_result);// ctrl + alt + f 全局定义变量
        Button tv_btn = findViewById(R.id.btn_click);
        tv_btn.setOnClickListener(new MyonclickListener(tv_btn_result));
        //第二种监听设置
        Button btn_click_public= findViewById(R.id.btn_click_public);
        btn_click_public.setOnClickListener(this);
    }

 class MyonclickListener implements View.OnClickListener {// static 防止内存泄露
        private final TextView textView;
        public MyonclickListener(TextView tv_btn_result) {
            textView = tv_btn_result;
        }

        @Override
        public void onClick(View view) {
            String desc = String.format("%s 点击了按钮: %s ", DateUtil.getNowTime(),((Button)view).getText());
            tv_btn_result.setText(desc);
        }
    }

在这里插入图片描述

public class MainActivity_button_click extends AppCompatActivity implements View.OnClickListener {


    private TextView tv_btn_result;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_button_click);
        tv_btn_result = findViewById(R.id.tv_btn_result);// ctrl + alt + f 全局定义变量 
        //第二种监听设置
        Button btn_click_public= findViewById(R.id.btn_click_public);
        btn_click_public.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {

        if(view.getId()==R.id.btn_click_public){
            String desc = String.format("%s 点击了按钮: %s ", DateUtil.getNowTime(),((Button)view).getText());
            tv_btn_result.setText(desc);
        }
    }


}

2.2 长按事件

在这里插入图片描述
在这里插入图片描述

还有很多其他的点击事件,需要同学们的慢慢探索

在这里插入图片描述

3. 禁用与恢复按钮

在实际业务中,按钮通常拥有两种状态,即不可用状态与可用状态,它们在外观和功能上
的区别如下:
⭕️不可用按钮:按钮不允许点击,即使点击也没反应,同时按钮文字为灰色;
⭕️可用按钮:按钮允许点击,点击按钮会触发点击事件,同时按钮文字为正常的黑色;
⭕️是否允许点击由enabled属性控制,属性值为true时表示允许点击,为false时表示不允许点击。

package com.example.myapplication_01;

import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

import com.example.myapplication_01.utils.DateUtil;

public class ButtonenbleActivity extends AppCompatActivity implements View.OnClickListener {

    private Button btn_test;
    private TextView tv_result3;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_buttonenble);
        Button btn_enable =findViewById(R.id.btn_enble);
        Button btn_disable= findViewById(R.id.btn_disable);

        btn_test = findViewById(R.id.btn_test);
        tv_result3 = findViewById(R.id.tv_result_3);

        btn_enable.setOnClickListener(this);
        btn_disable.setOnClickListener(this);
        btn_test.setOnClickListener(this);
    }

    @Override
    public void onClick(View v ) {
        switch (v.getId()){
            case R.id.btn_enble:
                btn_test.setEnabled(true);
                btn_test.setTextColor(Color.GREEN);
                break;
            case R.id.btn_disable:
                btn_test.setEnabled(false);
                btn_test.setTextColor(Color.GRAY);
                break;
            case R.id.btn_test:
                String desc = String.format("%s 你点击了按钮:%s", DateUtil.getNowTime(),((Button)v).getText());
                tv_result3.setText(desc);
                break;

        }
    }
}

在这里插入图片描述

总结

Button (按钮)继承自TextView,在Android开发中,Button是常用的控件,用起来也很简单,你可以在界面xml描述文档中定义,也可以在程序中创建后加入到界面中,其效果都是一样的。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人间凡尔赛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值