Android Studio中的按钮控件的三种点击事件

三种按钮点击事件*

首先我们先创建三个按钮,一个文本框和一个进度条。
代码如下:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/reduce"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="64dp"
        android:layout_marginTop="472dp"
        android:text="减少进度"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/set0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="156dp"
        android:layout_marginTop="580dp"
        android:text="重新开始"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/add"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="256dp"
        android:layout_marginTop="472dp"
        android:text="增加进度"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/textview"
        android:textSize="30sp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="116dp"
        android:layout_marginTop="288dp"
        android:text="当前进度50%"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <ProgressBar
        android:id="@+id/progressBar"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="133dp"
        android:layout_height="47dp"
        android:layout_marginStart="116dp"
        android:layout_marginTop="196dp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

第一种使用匿名内部类来创建按钮的点击事件。(实现增加进度按钮)


package com.example.dialog_style;

import androidx.appcompat.app.AppCompatActivity;

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

public class MainActivity extends AppCompatActivity {


    Button button_add;//定义变量
    TextView textview;//定义变量
    ProgressBar progressbar;//定义变量

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        button_add=findViewById(R.id.add);//拿到对象
        textview=findViewById(R.id.textview);//拿到对象
        progressbar=findViewById(R.id.progressBar);//拿到对象
        progressbar.setProgress(50);

        button_add.setOnClickListener(new View.OnClickListener() {//注册监听器
            @Override
            public void onClick(View view) {
/***********************************代码编辑区***********************************/
                progressbar.incrementProgressBy(10);
                int value=progressbar.getProgress();
                textview.setText("当前进度"+value+"%");
/***********************************代码编辑区***********************************/
            }
        });



    }
}

第二种通过利用布局中指定Onclick属性创建点击事件(实现减少进度按钮)
在这里插入图片描述
完成后,会在.java文件中看到多了红框内的代码。在红框内编写代码即可。
在这里插入图片描述

package com.example.dialog_style;

import androidx.appcompat.app.AppCompatActivity;

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

public class MainActivity extends AppCompatActivity {


    Button button_reduce;//定义变量
    TextView textview;//定义变量
    ProgressBar progressbar;//定义变量

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

/******************代码改动区**************************/
        textview=findViewById(R.id.textview);//拿到对象
        button_reduce=findViewById(R.id.reduce);//拿到对象
        progressbar=findViewById(R.id.progressBar);//拿到对象

        progressbar.setProgress(50);//初始化
        textview.setText("当前进度"+50+"%");//初始化
/******************代码改动区**************************/

    }
    public void qqq(View view) {
        progressbar.incrementProgressBy(-10);
        int value=progressbar.getProgress();
        textview.setText("当前进度"+value+"%");
    }
}

三、通过在当前Activity中实现OnclickListener接口。(实现 重新开始增加进度 按钮)
在这里插入图片描述
在这里插入图片描述
在红框内编写代码即可(如下图)。
在这里插入图片描述

package com.example.dialog_style;

import androidx.appcompat.app.AppCompatActivity;

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

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    Button button_set0,button_add;//定义变量
    TextView textview;//定义变量
    ProgressBar progressbar;//定义变量

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

/******************代码改动区**************************/
        button_set0=findViewById(R.id.set0);//获得对象
        button_add=findViewById(R.id.add);
        textview=findViewById(R.id.textview);//获得对象
        progressbar=findViewById(R.id.progressBar);//获得对象

        button_set0.setOnClickListener(this);
        button_add.setOnClickListener(this);
/******************代码改动区**************************/


    }

    @Override
    public void onClick(View view) {
        switch(view.getId()){
            case R.id.set0:
                progressbar.setProgress(0);
                textview.setText("当前进度"+0+"%");
                break;
            case R.id.add:
                progressbar.incrementProgressBy(10);
                int value=progressbar.getProgress();
                textview.setText("当前进度"+value+"%");
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值