三种按钮点击事件*
首先我们先创建三个按钮,一个文本框和一个进度条。
代码如下:
<?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+"%");
}
}
}