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描述文档中定义,也可以在程序中创建后加入到界面中,其效果都是一样的。

猜你喜欢

转载自blog.csdn.net/m0_53142039/article/details/126934403