文章目录

  • 目标效果
    • 主布局资源文件
    • 主界面
    • 时间`DateUtil`文件

按钮通常的两种状态
不可用状态:按钮不允许点击,即使点击了也没反应,同时按钮文字为灰色
可用状态:按钮允许点击,点击按钮会触发点击事件,同时按钮文字为正常的黑色
enabled属性控制:true为允许点击,false为不允许点击

目标效果


点击【启用测试按钮】实现启用【测试按钮】按钮,点击【禁用测试按钮】禁用【测试按钮】按钮。按钮【测试按钮】是接收上面两按钮的执行效果

主布局资源文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".ButtonEnableActivity"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><Buttonandroid:id="@+id/btn_enable"android:layout_width="0dp"android:layout_weight="1"android:layout_height="wrap_content"android:textColor="@color/black"android:textSize="17sp"android:text="启用测试按钮"/><Buttonandroid:id="@+id/btn_disable"android:layout_width="0dp"android:layout_weight="1"android:textColor="@color/black"android:textSize="17sp"android:layout_height="wrap_content"android:text="禁用测试按钮"/></LinearLayout><Buttonandroid:id="@+id/btn_test"android:layout_width="match_parent"android:layout_height="wrap_content"android:textColor="#888888"android:textSize="17sp"android:text="测试按钮"android:enabled="false"/><TextViewandroid:id="@+id/tv_result"android:layout_width="match_parent"android:layout_height="wrap_content"android:textColor="@color/black"android:textSize="17sp"android:text="这里是查看测试按钮的结果"/></LinearLayout>

效果展示

主界面

达到启用与禁用效果

import androidx.appcompat.app.AppCompatActivity;import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;public class ButtonEnableActivity extends AppCompatActivity implements View.OnClickListener {private Button btn_test;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_button_enable);//通过资源标识符获取控件实例Button btn_enable = findViewById(R.id.btn_enable);Button btn_disable = findViewById(R.id.btn_disable);btn_test = findViewById(R.id.btn_test);TextView tv_result = findViewById(R.id.tv_result);//设置点击事件btn_enable.setOnClickListener(this);btn_disable.setOnClickListener(this);btn_test.setOnClickListener(this);}@Overridepublic void onClick(View view) {switch (view.getId()) {case R.id.btn_enable://启用当前控件btn_test.setEnabled(true);//设置文字颜色btn_test.setTextColor(Color.BLACK);break;case R.id.btn_disable://启用当前控件btn_test.setEnabled(false);//设置文字颜色btn_test.setTextColor(Color.GRAY);break;}}
}

实现效果

点击【测试按钮】下方会显示文字

import androidx.appcompat.app.AppCompatActivity;import android.graphics.Color;
import android.os.Bundle;import android.view.View;
import android.widget.Button;
import android.widget.TextView;public class ButtonEnableActivity extends AppCompatActivity implements View.OnClickListener {private Button btn_test;private TextView tv_result;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_button_enable);//通过资源标识符获取控件实例Button btn_enable = findViewById(R.id.btn_enable);Button btn_disable = findViewById(R.id.btn_disable);btn_test = findViewById(R.id.btn_test);tv_result = findViewById(R.id.tv_result);//设置点击事件btn_enable.setOnClickListener(this);btn_disable.setOnClickListener(this);btn_test.setOnClickListener(this);}@Overridepublic void onClick(View view) {switch (view.getId()) {case R.id.btn_enable://启用当前控件btn_test.setEnabled(true);//设置文字颜色btn_test.setTextColor(Color.BLACK);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) view).getText());tv_result.setText(desc);break;}}
}

时间DateUtil文件


import java.text.SimpleDateFormat;
import java.util.Date;public class DateUtil {public static String getNowTime() {SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");return sdf.format(new Date());}
}

实现效果
开始是禁用的点击【启动测试按钮】后点击【测试按钮】下方会显示点击事件,点击【禁用测试按钮】后再点击【测试按钮】就没有效果

安卓基础学习 Day22|按钮的禁用与恢复相关推荐

  1. 安卓基础学习之handler

    安卓基础学习之handler 文章目录 安卓基础学习之handler 前言 一.Handler 二.handlder的使用流程讲解 1.简单的示例 2.handler的一些方法 总结 前言 记录安卓开 ...

  2. 【安卓基础】倒计时按钮封装(验证码倒计时按钮)

    验证码按钮在项目的使用频率应该是100%,现在大多数应用都会采用手机号码登陆,通常都会支持发送验证码登陆的功能. 我在项目中也遇到这样的功能,特别在忘记密码的界面,我注意到一点:当发送验证码之后,要6 ...

  3. 安卓基础学习(从头开始,持续更新)

    标题Android Studio学习 1.活动的基本用法 1.新建一个活动,会有主函数和其相对布局. [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f2IFw9Zb-1 ...

  4. 安卓基础学习 Day18|按键事件+手势操作(图片的放大、缩小、切换)

    目录 一.按键事件的概念 二.案例演示 1.提出要求 2.主布局资源文件 3.主界面 一.触摸事件的概述 触摸分类 触摸动作 触摸监听器 触摸方法 触点个数与坐标 二.单点触摸 案例:移动米老鼠 提出 ...

  5. 安卓基础学习 Day19|安卓高级控件------下拉列表

    目录 下拉列表(spinner) 下拉列表(数组适配器.列表框形式) 1.提出要求 2.主布局资源文件 3.主界面 4.条目布局文件 下拉列表(数组适配器.对话框形式) 1.提出要求 2.主布局资源文 ...

  6. 安卓基础学习 Day 6|常用控件---列表视图+古诗查看

    目录 列表视图4要素 四种是适配器 古诗查看 古诗列表 1.主布局资源文件 2.诗歌列表项模板 3.字符串资源文件 4.主界面代码 5.启动应用.查看效果 古诗内容模板 1.内容模板的主布局资源文件 ...

  7. 传智黑马java基础学习——day22(File、递归)

    右键点击图片,可另存为.

  8. 安卓基础学习 Day 21|Fragment(碎片)

    目录 Fragment(碎片) Fragment 静态注册 碎片文件 碎片布局文件 碎片主界面 主界面 实现效果 Fragment声明周期 Fragment动态注册 标签栏 显示界面 图片和显示的文字 ...

  9. bootstrap基础学习【菜单、按钮、导航】(四)

    <!DOCTYPE html> <html><head><meta charset="UTF-8"><title>boo ...

最新文章

  1. C语言感觉有意思得意东西!_只愿与一人十指紧扣_新浪博客
  2. java 端写的list 前端页面获取方法
  3. python的安装教程-python安装教程
  4. php 返回查询结果某个字段
  5. LSMW批处理使用方法(06)_步骤4、5
  6. 对“反射”的深入认识,你会发觉跟“解剖”一样
  7. TK8亮度蒙版PS插件:TKactions V8 for Mac 兼容ps2021
  8. python反转列表解析_Python语法糖之:列表解析、集合解析和字典解析
  9. python集合常用方法_Python 集合常用方法总结
  10. 大学python考试会挂科吗_学姐含泪劝告:4个“最难学”的大学专业,考试“挂科”是常态...
  11. Android11 如何将系统默认设置中文
  12. Remote Desktop Connection Manager2.7 安装+基本使用
  13. mti杂波抑制仿真 matlab,MTI+MTD+CFAR简单仿真
  14. idea 2021版本错误提示反应慢
  15. C基础:45道练习题汇总(初学者加油)
  16. Planning with Goal-Conditioned Policies读书笔记
  17. select标签 selected 选中状态动态查询
  18. 非精确线搜索 matlab,使用非精确线搜索Armijo算法确定步长的最速下降法(MATLAB)...
  19. python大作业代码_爬虫大作业(示例代码)
  20. 标准USB/Mini-USB接口,及OTG

热门文章

  1. 利用计算机课堂导入的好处,多媒体教学的好处
  2. PC端“交易猫”网站爬虫项目
  3. 腾讯云、阿里云和百度云的优劣势各是什么?
  4. 基于FPGA 的PLC/PAC 硬件运行时的实现
  5. 汇编中各寄存器的作用(16位CPU14个,32位CPU16个)和 x86汇编指令集大全(带注释)...
  6. 量化投资常用技能——绘图篇 2:绘制移动平均线
  7. 交换机的转发原理 |VLAN详解·图解 |VLAN间通信 |华为,思科配置
  8. 求解全微分的原函数(二元)
  9. 你不知道的 async、await 魔鬼细节
  10. 小白的OpenGL整合环境入门(搭建以及简介)