Android按钮事件监听

一、搭建UI

1.进入res->layout->activity_main.xml 布局页面,选择Design模式

2.创建一个 LinearLayout 线性布局,用来约束UI

3.拖动一个按钮组件到 LinearLayout 下

二、监听按钮事件4种方式介绍

1.匿名内部类(代码如下)

package com.hiscene.buttonevent;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

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

        Button button = findViewById(R.id.button);

        button.setOnClickListener(new View.OnClickListener(){

            @Override
            public void onClick(View v) {

                Toast.makeText(MainActivity.this,"OnClickButton",Toast.LENGTH_SHORT).show();

            }
        });
    }
}

2.当前类实现OnClickListener接口

package com.hiscene.buttonevent;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

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

        Button button=findViewById(R.id.button);
        button.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {

        switch (v.getId())
        {
            case R.id.button:

                Toast.makeText(MainActivity.this,"OnClicnButton",Toast.LENGTH_SHORT).show();
                break;
        }
    }
}

3.使用内部类实现OnClickListener接口

package com.hiscene.buttonevent;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity  {

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

        Button button=findViewById(R.id.button);

        ButtonEvent buttonEvent=new ButtonEvent();
        button.setOnClickListener(buttonEvent);
    }

    private class ButtonEvent implements View.OnClickListener
    {

        @Override
        public void onClick(View v) {

            switch (v.getId())
            {
                case R.id.button:

                    Toast.makeText(MainActivity.this,"ClickButton",Toast.LENGTH_SHORT).show();
                    break;
            }
        }
    }
}

4.在按钮的布局上添加“onClick”属性,调用Activity中函数

package com.hiscene.buttonevent;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity  {

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

    public void OnClickButton(View view)
    {
        switch (view.getId())
        {
            case R.id.button:

                Toast.makeText(MainActivity.this,"ClickButton",Toast.LENGTH_SHORT).show();
                break;
        }
    }
}

发布了38 篇原创文章 · 获赞 37 · 访问量 8026

猜你喜欢

转载自blog.csdn.net/a451319296/article/details/105019761