Android控件之Button

干浩阔
2023-12-01

Button控件表示按钮,通过用户点击来执行操作,当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();
    }
}

 类似资料: