Button控件表示按钮,通过用户点击来执行操作,当Button控件被点击时会触发点击效果。
为Button按钮控件设置点击事件的方式主要有三种方式:
(1)在布局文件中在按钮中添加onClick属性
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
tools:context=".ButtonThree">
<Button
android:id="@+id/btn3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="Click"
android:text="点击按钮"
/>
</LinearLayout>
在布局文件中添加了onClik的属性,我们可以在活动中定义专门的方法来实现Button控件的点击事件。注意定义的方法名必须与布局文件中定义的属性名一值。
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class Fragment extends AppCompatActivity {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment);
btn = (Button) findViewById(R.id.btn);
}
public void click(View view){
btn.setText("你点了我你要对我负责");
Toast.makeText(Fragment.this, "哈哈哈,你点了我!", Toast.LENGTH_SHORT).show();
}
}
(2)使用匿名内部类的方式设置点击事件。
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class Fragment extends AppCompatActivity {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment);
btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
btn.setText("你点了我你要对我负责");
Toast.makeText(Fragment.this, "哈哈哈,你点了我!", Toast.LENGTH_SHORT).show();
}
});
}
}
(3)活动中实现OnClickListener接口的方式设置点击事件。
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class Fragment extends AppCompatActivity implements View.OnClickListener{
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment);
btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(this); //设置Button控件的点击监听事件
}
@Override
public void onClick(View v) {
btn.setText("被点击了");
Toast.makeText(Fragment.this, "Toast我是轻量级的消息输出", Toast.LENGTH_SHORT).show();
}
}