按钮点击事件外部类

来源:互联网 发布:时间安排手机软件 知乎 编辑:程序博客网 时间:2024/05/22 10:35

可以将事件写入一个外部类中,使得按钮触发自身事件时还会触发外部类中的事件,避免了有些按钮都要触发同一个事件时代码冗余。

package com.example.yellowsea.buttonclickevent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.support.v7.widget.ButtonBarLayout;import android.view.View;import android.widget.Button;import android.widget.Toast;public class MainActivity extends AppCompatActivity {    private Button button1;    private Button button2;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        button1 = (Button) findViewById(R.id.button1);        button2 = (Button) findViewById(R.id.button2);        //点击事件外部类        button1.setOnClickListener(new MyOnClickListener() {            @Override            public void onClick(View v) {                //调用父类的onClick                super.onClick(v);                toast("触发按钮1");            }        });        button2.setOnClickListener(new MyOnClickListener() {            @Override            public void onClick(View v) {                //调用父类的onClick                super.onClick(v);                toast("触发按钮2");            }        });    }    public void toast(String message){        Toast.makeText(this, message, Toast.LENGTH_SHORT).show();    }}class MyOnClickListener implements View.OnClickListener {    @Override    public void onClick(View v) {        //触发按钮时,都执行这个事件        v.setAlpha(0.5f);    }}
布局文件:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/activity_main"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    android:orientation="vertical"    tools:context="com.example.yellowsea.buttonclickevent.MainActivity">    <Button        android:id="@+id/button1"        android:text="@string/_1"        android:layout_width="match_parent"        android:layout_height="wrap_content" />    <Button        android:id="@+id/button2"        android:text="@string/_2"        android:layout_width="match_parent"        android:layout_height="wrap_content" /></LinearLayout>





0 0
原创粉丝点击