Android Studio 学习记录-按钮控件(Button)

17 篇文章 6 订阅
订阅专栏

目录

按钮控件(Button)

        textAllCaps属性

        onClick属性

点击事件和长按事件

禁用与恢复按钮


        本文介绍按键控件的常见用法,包括:如何设置大小写属性,如何响应按钮的点击事件和长按事件,如何禁用按钮又该如何启用按钮,等等。

按钮控件(Button)

        textAllCaps属性

        对textView来说,text属性设置什么文本就显示什么文本。但对Button来说,text属性字母不管设置大写还是小写,都默认转成大写

        想要不转换成大小需补充textAllCaps属性,该属性默认值为true,表示全都转换为大写,如果设置为false,则表示不转为大写。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
    tools:context=".ActivityButton">
    <TextView
        android:id="@+id/tv_btn1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/tv_btn1"
        android:textColor="#000000"
        android:layout_marginTop="10dp"
        android:layout_centerHorizontal="true"/>
    <Button
        android:id="@+id/btn_btn1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/app_name"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_below="@id/tv_btn1"/>
    <TextView
        android:id="@+id/tv_btn2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/btn_btn1"
        android:text="@string/tv_btn2"
        android:textColor="#000000"
        android:layout_marginTop="10dp"
        android:layout_centerHorizontal="true"/>
    <Button
        android:id="@+id/btn_btn2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/tv_btn2"
        android:layout_marginRight="10dp"
        android:layout_marginLeft="10dp"
        android:text="@string/app_name"
        android:textAllCaps="false"/>
</RelativeLayout>

        onClick属性

        每当点击按钮时,就表示用户确认了某个事项,接下来轮到App来处理了。onClick属性便用来接管用户的点击动作,该属性的值是个方法名,也就是当前页面的Java代码存在这么一个方法:当用户点击时,就自动调用该方法。

         Button标签指定了onClick属性值为doClick,表示点击该按钮会触发Java代码中的doClick方法。

<Button
        android:id="@+id/btn_btn3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/btn_btn2"
        android:onClick="doClick"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="10dp"
        android:text="@string/btn_btn3"
        android:textAllCaps="false" />
    <TextView
        android:id="@+id/tv_btn3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/tv_btn3"
        android:layout_below="@id/btn_btn3"
        android:layout_centerHorizontal="true"
        android:textColor="#000000"/>

        与之相对应,页面所在Java代码需要增加doClick方法。

package com.example.helloandroid;

import androidx.appcompat.app.AppCompatActivity;

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


public class ActivityButton extends AppCompatActivity {
    private TextView tv_btn3;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_button);
        tv_btn3=findViewById(R.id.tv_btn3);
    }
    public void doClick(View view){
        String desc=String.format("%s 您点击了按钮:%s",DateUtil.getNowTime(),((Button) view).getText());
        tv_btn3.setText(desc);
    }
}

                ps.时间工具DateUtil

package com.example.helloandroid;

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

点击事件和长按事件

        在实际开发中,不推荐使用onClick属性,而是在代码中给按键对象注册监听器。

        所谓监听器,意思是专门监听控件的动作行为,它平时无事可做,只有控件发生了指定动作,监听器才会出发开关去执行对应的代码逻辑。点击监听器需要实现接口View.setOnClickLinstener,并重写onClick方法补充点击事件的处理代码,再由按钮调用setOnClickLinstener方法设置监听对象。

public class ActivityButton extends AppCompatActivity implements View.OnClickListener{
    private TextView tv_btn3;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_button);
        findViewById(R.id.btn_btn4).setOnClickListener(this);
        findViewById(R.id.btn_btn5).setOnClickListener(this);
    }

    @Override
    public void onClick(View v){
        if (v.getId()==R.id.btn_btn4){
            String desc=String.format("%s 您点击了按钮:%s",DateUtil.getNowTime(),((Button) v).getText());
            tv_btn3.setText(desc);
        }
        if (v.getId()==R.id.btn_btn5){
            String desc=String.format("%s 您点击了按钮:%s",DateUtil.getNowTime(),((Button) v).getText());
            tv_btn3.setText(desc);
        }
    }
}

         除了点击事件外,Android还设计了另外一种长按事件,每当控件被按住超过500毫秒之后,就会触发该控件的长按事件。若要捕捉按钮的长按事件,可调用按钮对象的setOnLongClickListener方法设置长按监听器。

        把长按监听器设置到当前页面,该页面需要实现对应的长按接口View.OnLongClickListener,并重写长按方法onLongClick。

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_button);
        tv_btn3=findViewById(R.id.tv_btn3);
        findViewById(R.id.btn_btn6).setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                if (v.getId()==R.id.btn_btn6){
                    String desc=String.format("%s 您长按了按钮:%s",DateUtil.getNowTime(),((Button) v).getText());
                    tv_btn3.setText(desc);
                }
                return true;
            }
        });
    }
    

禁用与恢复按钮

        在某些情况,我们会希望暂时禁止点击操作,这样的业务场景中,按钮先后有两种状态,即不可以状态与可用状态,他们在外观功能上的区分如下:

        (1)不可用按钮:按钮不允许点击,即使点击也没反应,同时按钮文字为灰色。

        (2)可以按钮:按钮允许点击,点击按钮会触发点击事件,同时按钮文字为正常黑色。

        是否允许点击,需引入新属性android:enabled ,该属性值为true时表示启用,false时表示禁用。

<Button
        android:id="@+id/btn_btn6"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/btn_ll"
        android:enabled="false"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:text="测试按钮"/>

        在Java中可通过setEnabled方法设置按钮的可用状态(true表示启用,false表示禁用)。

@Override
    public void onClick(View v){
        if (v.getId()==R.id.btn_btn4){
            btn_test.setTextColor(Color.BLACK);
            btn_test.setEnabled(true);
            String desc=String.format("%s 您点击了按钮:%s",DateUtil.getNowTime(),((Button) v).getText());
            tv_btn3.setText(desc);
        }
        if (v.getId()==R.id.btn_btn5){
            btn_test.setTextColor(Color.GRAY);
            btn_test.setEnabled(false);
            String desc=String.format("%s 您点击了按钮:%s",DateUtil.getNowTime(),((Button) v).getText());
            tv_btn3.setText(desc);
        }
    }

android studio 自定义button 以及基础动画
09-16
android studio 自定义button边框,角度,渐变颜色按下时改变样式, 以及基础动画,为image view添加旋转,下移,渐变等样式,使用timer handler button进行控制。
Android基本控件button按钮
u012702039的专栏
01-07 1474
老罗视频学习笔记。 一.Button控件。 1)button焦点变化 基本用法就不多说了,主要记录Button按钮焦点变化和图文混排的功能。 在之前TextView和EditText的项目中新添加一个menu选项,点击后弹出新的Activity,在新的ButtonActivity里实现功能。 首先继承OnClickListener,OnTouchListener,OnFocusChan
Android按钮实战教程
最新发布
weixin_42581846的博客
08-26 449
本文还有配套的精品资源,点击获取 简介:Android开发中,按钮是不可或缺的交互组件。本教程将通过创建、配置和使用按钮,演示如何在Android应用中实现按钮功能。我们将从布局文件定义按钮开始,然后在Java代码中处理按钮点击事件,并探讨按钮的样式自定义和与其他组件的结合。通过本教程,初学者将掌握Android按钮操作的基础,为未来应用开发奠定坚实基础。 1. An...
[Android studio] 第6节 Button控件
AA2534193348的博客
06-30 2501
Button控件具有许多属性可以用来自定义其外观和行为。:设置Button的唯一标识符。在代码中可以使用这个ID引用Button。:设置Button中文本内容的对齐方式。:设置Button点击事件的回调方法。:设置Button显示的文本内容。:设置Button文本的颜色。:设置Button文本的大小。
Android Studio程序开发】按钮触控---按钮控件Button
qq_64976935的博客
12-07 5187
除了文本视图之外,按钮Button也是一种基础控件。因为Button是由TextView派生而来,所以文本视图 拥有的属性和方法,包括文本内容、文本大小、文本颜色等,按钮控件均能使用。不同的是,Button拥有默认的按钮背景,而TextView默认无背景;Button的内部文本默认居中对齐,而TextView的内部文本 默认靠左对齐。此外,按钮还要额外注意textAllCaps与onClick两个属性,分别介绍如下:1.textAllCaps属性对于TextView来说,text属性设置了什么文本,文本视图
AndroidStudio Button控件
Jasonhso的博客
07-14 772
AndroidStudio Button控件
Android studio Button的 用法详情
afufufufu的博客
08-05 4412
Android studio Button的 用法详情
Android Studio开发笔记之Button控件
l198738655的博客
07-03 7039
  Android Studio开发笔记之Button控件   看了几本书都号称自己是入门的,然而很多重要的东西都不说,都默认读者清楚。现在我把每个控件的使用过程记下来,一是为了记录,二是为了帮助后来的人。Android Studio和微软的Visual Studio简直云泥之别,虽然只差了一个单词。Android Studio可以说还在完善中,不过就我个人的看法Android Studio应该...
Android Studio 学习记录-选择按钮
demon_dog的博客
02-24 2072
本文介绍了几个常用的特殊控制按钮,包括:如何使用复选框CheckBox及其勾选监听器、如何使用开关按钮Switch、如何借助状态列表图形实现仿IOS的开关按钮、如何使用单选按钮RadioButton和单选组RadioGroup及其选中监听器。
Android Studio 学习记录-图形定制
demon_dog的博客
02-22 1863
本文介绍Android图形的基本概念和几种常见图形都使用办法,包括形状图形的组成结构及其具体用法、九宫格图片(点九图片)的制作过程及其适用场景、状态列表图形的产生背景及其具体用法。
安卓Android studio学习笔记02:熟悉Button控件
那人独钓寒江雪
10-13 269
【代码】安卓Android studio学习笔记02:熟悉Button控件
Android移动平台开发-常用控件应用.doc
11-14
本文将详细介绍 Android 移动平台开发中常用的控件应用,包括 Button、EditText、RadioButton、AlertDialog 等控件的使用,以及线性布局、相对布局、表格布局等布局方式的应用。 一、实验目的 在 Android 移动平台...
android studio多个按钮跳转,Android Studio--按钮跳转新页
weixin_35417196的博客
05-25 2101
MainActivity.xml:android:id="@+id/btnGo"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Button Go"android:onClick="skip"tools:layout_editor_absoluteX="16dp"tools:l...
Android Studio学习(八)-Button
weixin_45373745的博客
11-22 1006
一.实现点击按钮换图标、颜色 1.在activity_main.xml <androidx.appcompat.widget.AppCompatButton android:id="@+id/bu_one" android:background="@drawable/btn_selector" android:layout_width="200dp" android:layout_height="100dp"
按钮、图像视图与图像按钮
m0_63887380的博客
11-07 315
【代码】按钮、图像视图与图像按钮
Android Studio-------添加按钮
热门推荐
Cat
10-01 4万+
我们要想添加按钮,首先得有一个活动Activity,所以先手动创建一个活动。 点击第一项-&gt; 点击Finish。 创建成功之后,双击出现如下代码: 因为Android Studio的设计讲究逻辑与视图分离,最好一个活动对应一个布局,以显示界面的内容,所以现在还需手动创建一个布局文件。 接下来会弹出: 先创建一个layout的目录: 然后在...
AndroidStudio按钮基本操作(普通按钮、图片按钮、单选按钮设置)(单击事件监听器触发对话框和页面跳转)
GalaxyerKw的博客
02-06 9696
Button button = (Button) findViewById(R.id.btn); //获取按钮Button的实例对象,取名为button button.setOnClickListener(new View.OnClickListener() { //设置按钮事件监听器OnClickListener,传入的参数是一个匿名内部类 @Override public void onClick(View view) {
Android StudioButton控件
tou_tu_le的博客
07-13 4608
在进行控件设置之前,需要首先在activity_main.xml文件和MainActivity.java文件进行设置Button控件属于TextView控件的子类 因此文字大小和颜色的设置方法与TextView的方法相同 程序如下: 2.自定义背景形状 改成 (1)设置成实心颜色的按键 ①在app/res/drawable文件夹下新建drawable Resource File,Root element:shape ②设置实心颜色属性: ③设置圆角属性: 整体程序如下: (2)设置成空心只有边框的按键
android stdio button控件教程
qq_45420052的博客
03-16 1675
android stdio button控件教程 android stdio button控件的介绍android stdio button控件教程一、Button是什么?二、Button的子类1.RadioButtonCheckBox三、Button点击事件的实现1.onclick2.方法实现3.匿名内部类总结 一、Button是什么? Button控件表示按钮,它继承自TextView控件,既可以显示文本,又可以显示图片,同时也允许用户通过点击来执行操作,当Button控件被点击,被按下与弹起的背景会有
android studiobutton控件
10-11
Android Studio中,Button控件用于在用户界面上显示一个可点击的按钮。要在Android Studio中使用Button控件,可以按照以下步骤进行操作: 1. 打开Android Studio并创建一个新的项目。 2. 在布局文件中找到需要放置Button控件的位置,通常是在xml文件的ConstraintLayout或LinearLayout中。 3. 在布局文件中添加Button控件的代码,例如: ```xml <Button android:id="@+id/myButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Click Me" /> ``` 这个例子中,我们创建了一个id为myButtonButton控件,并设置了其宽度和高度为自适应内容,并显示文本为"Click Me"。 4. 在Java代码中找到Button控件并进行操作。在Activity类的onCreate方法中添加以下代码: ```java Button myButton = findViewById(R.id.myButton); myButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 在按钮被点击时执行的代码 // 可以在这里添加你想要执行的操作 } }); ``` 这个例子中,我们通过findViewById方法找到id为myButtonButton控件,并使用setOnClickListener方法为其设置一个点击事件监听器。当按钮被点击时,onClick方法中的代码将被执行。
写文章

热门文章

  • Android Studio 学习记录-数据库 5430
  • Android Studio 学习记录-下拉框 5132
  • Android Studio 学习记录-按钮控件(Button) 4931
  • Android Studio 学习记录-收发应用广播 2695
  • Android Studio 学习记录-图像显示 2676

分类专栏

  • Android Studio 17篇

最新评论

  • Android Studio 学习记录-按钮控件(Button)

    喆习: 很好,全都可以复现。 那个%s 和DateUtil.getNowTime(),觉着麻烦去掉了。 最后一图btn_test改成了tv_btn3,然后Color.BLACK 要加import android.graphics.Color;或者干脆用int值tv_btn3.setTextColor(-16777216);tv_btn3.setTextColor(-7829368); 评论一下方便后来者调试。 博主很用心,我复现的UI比较随意,原理整明白代码跑通了。感谢。

  • Android Studio 学习记录-数据库

    CSDN-Ada助手: 恭喜你这篇博客进入【CSDN每天值得看】榜单,全部的排名请看 https://bbs.csdn.net/topics/613891137。

大家在看

  • ⾃定义类型:结构体详解
  • 使用docker build自制flink镜像供k8s使用
  • wait阻塞函数
  • 深度学习-循环神经网络-LSTM对序列数据进行预测
  • ArcGIS应用指南:多尺度渔网创建

最新文章

  • Android Studio 学习记录-下拉框
  • Android Studio 学习记录-存储卡
  • Android Studio 学习记录-数据库
2023年17篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家洛阳主题美陈商场主题绍兴环保玻璃钢雕塑定做价格玻璃钢雕塑雕塑价格玻璃钢动物雕塑哪家设计得好宜昌玻璃钢雕塑设计鹰潭多彩玻璃钢雕塑供应商商丘玻璃钢浮雕人物雕塑公司玻璃钢花盆制作书签济源锻铜玻璃钢卡通雕塑公司丽水玻璃钢陶瓷雕塑方案尚雕坊玻璃钢雕塑制作过程园林玻璃钢景观雕塑价格肇庆玻璃钢景观雕塑定制通州玻璃钢雕塑工程辽宁卡通玻璃钢雕塑加工玻璃钢雕塑现货商城商场美陈装饰设计方案蒙城商场美陈布置靠谱的玻璃钢仿铜雕塑永州玻璃钢雕塑凳子温州玻璃钢雕塑设计制作厂家保山市玻璃钢雕塑设计厂家惠州树脂玻璃钢雕塑摆件玻璃钢俄罗斯套娃雕塑主题公园玻璃钢雕塑定制陆丰玻璃钢雕塑呈贡定做玻璃钢雕塑厂家内蒙古玻璃钢卡通雕塑价格玻璃钢花盆透气性苏州玻璃钢雕塑摆件市场香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化