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

这篇具有很好参考价值的文章主要介绍了Android Studio 学习记录-按钮控件(Button)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

按钮控件(Button)

        textAllCaps属性

        onClick属性

点击事件和长按事件

禁用与恢复按钮


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

按钮控件(Button)

        textAllCaps属性

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

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

        想要不转换成大小需补充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代码存在这么一个方法:当用户点击时,就自动调用该方法。

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

         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方法设置长按监听器。

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

        把长按监听器设置到当前页面,该页面需要实现对应的长按接口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 Studio 学习记录-按钮控件(Button)

        是否允许点击,需引入新属性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表示禁用)。文章来源地址https://www.toymoban.com/news/detail-421468.html

@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)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Python】【进阶篇】四、Tkinter的Button按钮控件

    Button 控件是 Tkinter 中常用的窗口部件之一,同时也是实现程序与用户交互的主要控件。用户通过点击按钮的行为来执行回调函数,是 Button 控件的主要功用。首先自定义一个函数或者方法,然后将函数与按钮关联起来,最后,当用户按下这个按钮时,Tkinter 就会自动调用相关

    2024年02月16日
    浏览(29)
  • 【Unity-UGUI控件全面解析】| Button 按钮组件详解

    🎬 博客主页:https://xiaoy.blog.csdn.net 🎥 本文由 呆呆敲代码的小Y 原创,首发

    2024年02月05日
    浏览(44)
  • 合宙Air724UG LuatOS-Air LVGL API控件--按钮 (Button)

    按钮 (Button) 按钮控件,这个就不用多说了,界面的基础控件之一。 示例代码 – 按键回调函数 event_handler = function(obj, event) if event == lvgl.EVENT_CLICKED then print(“Clickedn”) elseif event == lvgl.EVENT_VALUE_CHANGED then print(“Toggledn”) end end – 按键1 btn1 = lvgl.btn_create(lvgl.scr_act(), nil) lvgl.o

    2024年02月11日
    浏览(34)
  • Android 之 Button (按钮)与 ImageButton (图像按钮)

    今天给大家介绍的Android基本控件中的两个按钮控件,Button普通按钮和ImageButton图像按钮; 其实ImageButton和Button的用法基本类似,至于与图片相关的则和后面ImageView相同,所以本节 只对Button进行讲解,另外Button是TextView的子类,所以TextView上很多属性也可以应用到Button 上!我们

    2024年02月07日
    浏览(38)
  • 《Android Studio开发实战》学习(八)- 点击按钮切换图片

    在前一篇文章 1 中实现了使用Android Studio开发一个图片展示App,熟悉了简单控件ImageView的使用 2 ,在这里继续研究Android Studio的使用方法。本文的目的是介绍如何开发一个图片切换App,实现点击按钮,在窗口中切换不同的图片。 现在想要设计一个图片切换工具,页面布局是 图

    2024年02月09日
    浏览(27)
  • android去除按钮(Button)背景、边框,使按钮背景透明【创建无边框按钮】

    android 中的按钮是最常用到的一种控件,因此网上对于修改按钮样式的问题也非常多。在自定义样式中,有一个常见的需求就是去除按钮背景。比如下图的情况: 左边的按钮图标可以使用 ImageButton 或 ImageView 来加载一个透明背景的icon。而右边只显示文字的按钮则只能使用普通

    2024年02月02日
    浏览(45)
  • 15. 【Android教程】按钮 Button/ImageButton

    在前面两章我们讲了 TextView,它是一个纯输出的控件;而 EditText 在 TextView 基础之上加入了简单的输入功能;今天要讲的 Button 是一个和用户互动感很强的控件,从今往后不再是单纯的文本展示,我们可以通过 TextView、EditText 再加上 Button 做出非常多有很意思的功能。ImageButt

    2024年04月14日
    浏览(22)
  • Android里面,button按钮怎么设置圆角?

    在Android中,可以通过创建一个自定义的Drawable XML文件来实现给Button设置圆角的效果。以下是创建圆角按钮的步骤: 在 res/drawable 文件夹下,创建一个新的XML文件,例如 rounded_button.xml 。 在 rounded_button.xml 文件中,添加以下代码: 在这里,你可以自定义圆角的半径、按钮的颜色

    2024年02月08日
    浏览(30)
  • Android的Button按钮更换其他的背景颜色

    1.首先我们得明白Android里面的按钮的背景颜色是统一的,如果想更换整体的背景颜色的话可以 找到res-values-themes-themes.xml,双击打开themes.xml文件。 2 进行修改 如下图  3 效果图    

    2024年02月12日
    浏览(44)
  • layui踩坑记录之form表单下的button按钮默认自动提交

    首先参考下面这篇文章: layui form表单下的button按钮会自动提交表单的问题以及解决方案_layui form里面其他button按钮_你用点心就行的博客-CSDN博客 他说的已经很清楚了,我再补充(啰嗦)一下: 其实就是使用form的时候,应该对应有一个提交按钮,配套使用。其他功能按钮相加

    2024年02月16日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包