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

系列文章目录

文章目录

  • 系列文章目录
  • 前言
  • 1.按钮控件Button
    • 1.1按钮控件的新增属性
  • 2. 点击事件和长按事件
    • 2.1 点击事件
    • 2.2 长按事件
  • 3. 禁用与恢复按钮
  • 总结


前言

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

1.按钮控件Button

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

1.1按钮控件的新增属性

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

Android 简单控件 - -4.按钮控件 button_第1张图片
onclick 过时了但是还能用,现在使用setOnclickListener多点 ,
Android 简单控件 - -4.按钮控件 button_第2张图片

2. 点击事件和长按事件

2.1 点击事件

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

Android 简单控件 - -4.按钮控件 button_第3张图片


    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);
        }
    }

Android 简单控件 - -4.按钮控件 button_第4张图片

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 长按事件

Android 简单控件 - -4.按钮控件 button_第5张图片
在这里插入图片描述

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

Android 简单控件 - -4.按钮控件 button_第6张图片

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;

        }
    }
}

Android 简单控件 - -4.按钮控件 button_第7张图片

总结

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

你可能感兴趣的:(android)