Button控件
学习完了上篇博客关于TextView控件的使用,今天我们来学习下一个控件Button
上一篇博客链接:Android学习——TextView简单控件的使用-优快云博客
Button是什么
button,在英文中的意思是按钮,纽扣。所以Button我们叫他按钮控件。我们随便打开一个软件,比如:微信红包的页面。
这个页面大家应该很熟悉,当我们输入完金额之后,点击“塞钱进红包”之后,便可以给你爱的人发红包了。这里的“塞钱进红包”,使用的正是一个按钮控件,也就是Button。
这里大家应该很好理解,Button控件就是软件上的一个个小按钮,下面我们来学习一下这个控件,在学习之前,我们先来了解一下点击事件。
点击事件
还是刚刚微信红包的例子,当你点击了“塞钱进红包”之后,会发生什么?你的手机会执行哪些任务呢?第一步是不是需要让你输入密码?输入完之后,连接到你的钱包,或者银行卡。紧接着判断金额是否足够,如果足够的话,便可以把你的浅浅塞进这个电子红包里面。这就是点击这个按钮之后会发生的故事。
所以“点击事件”就很好理解啦,就是在你点击完按钮之后会执行的操作,我们就称为触发事件。
使用Button
了解完了触发事件,下面我们来学习如何使用Button控件以及设置触发事件。
第一步,我们来看一下再xml布局文件里面如何创建Button这个控件,话不多说,先展示代码:
<Button
android:id="@+id/bt_test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="按钮控件"
android:background="#ffcc00"
android:textColor="#ffffff"
android:textSize="30dp"
/>
添加完之后,是这样一个效果:
id:不必多说了,这个是控件唯一的身份证
layout_width layout_height
这两个也更不必多说了,还不懂的uu可以参考上一篇博客Android学习——TextView简单控件的使用-优快云博客
紧接着是text,background等属性,也不用多说了。看着是不是有点像TextView控件?如果你这样觉得,那说明你的感觉是正确的。事实上,Button这个控件是继承于TextView的,我们不妨看一下源代码
只不过不同的是,Button默认是有背景的,但是TextView默认是没有背景的,你可以自己尝试一下,很简单
在Activity里面使用Button
说完了Button外观的设计,下面就来说说如和在我们的Activity里面使用Button,并且设计点击事件
话不多说,先直接上源代码:
package com.example.test01;
import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import com.example.test01.util.DateTime;
public class RealtiveActivity extends AppCompatActivity {
private Button button_get;
private TextView textView;
@SuppressLint("MissingInflatedId")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_realtive);
textView = findViewById(R.id.tv_result);
button_get = findViewById(R.id.bt_get_time);
button_get.setOnClickListener(new ViewMyClick(textView));
}
//构造一个静态的内部类,实现了View.onClickListener的接口
static class ViewMyClick implements View.OnClickListener {
private final TextView textView;
//添加构造方法
public ViewMyClick(TextView textView){
this.textView = textView;
}
@Override
public void onClick(View view) {
String desc = String.format("%s 您点击了按钮 : %s", DateTime.getTimeNow(),((Button)view).getText());
textView.setText(desc);
}
}
}
其中么,最主要的有这两部分代码
1.findViewById();也就是与我们的按钮进行捆绑,找到你需要的那个按钮控件,如何去找,那就是使用我们之前给控件设置过的身份证,也就是id
private Button button_get;
button_get = findViewById(R.id.bt_get_time);
再然后就是设置Click事件
button_get.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//在这里面写点击后要执行的过程
}
});
熟悉java的小伙伴我们都知道,这种方法使用的事java里面的匿名内部类,如果一个Actitity里面有一两个按钮还好,如果有很多个按钮的话,这样子使用那就比较麻烦啦,所以嘞,我们可以这样写。
package com.example.test01;
import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
public class JumpFirstActivity extends AppCompatActivity implements View.OnClickListener {
@SuppressLint("MissingInflatedId")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_jump_first);
//设置按钮的点击事件
findViewById(R.id.bt_jump_second).setOnClickListener(this);
}
@Override
public void onClick(View view) {
if(view.getId()==R.id.bt_jump_second){
//这里写上按钮点击后需要执行的代码
}
}
}
这种方式是通过实现View.OnClickListener这个接口的方式去设置点击事件,实现接口就需要重写接口里面的方法,也就是onClick()方法。当按钮数量多起来的时候,就可以在重写的方法里面进行id()的判断。
onClick(View view);里面的参数View就是我们传进去的Activity,使用setOnClickListener(this);意思可以理解为把我们获取到的按钮穿进去了,所以在方法里面我们使用view.getId();来判断是哪一个按钮被点击了。
OK,以上就是Button按钮控件的基本使用啦。
如果你有任何的疑问,可以评论留言,也可以加我的v:whszs23333