监听器

<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.hanqi.testapp2.MainActivity"
    android:rowCount="7"
    android:columnCount="4">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="120dp"
        android:layout_columnSpan="4"
        android:layout_rowSpan="2"
        android:id="@+id/tv_1"
        android:text="0"
        android:textSize="40sp"
        android:paddingRight="10dp"
        android:gravity="right|center_vertical"
        android:textColor="#fff100"
        android:background="#000"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="C"
        android:id="@+id/btc"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:textSize="30sp"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="+/-"
        android:id="@+id/bt_hun"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:textSize="30sp"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="%"
        android:id="@+id/bt_bai"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:textSize="30sp"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="÷"
        android:id="@+id/bt_chu"
        android:layout_rowWeight="1"
        android:textSize="30sp"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="7"
        android:onClick="bt7_OnClick"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:textSize="30sp"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="8"
        android:onClick="bt8_OnClick"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:textSize="30sp"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="9"
        android:id="@+id/bt9"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:textSize="30sp"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="X"
        android:id="@+id/bt_cheng"
        android:layout_rowWeight="1"
        android:textSize="30sp"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="4"
        android:id="@+id/bt4"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:textSize="30sp"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="5"
        android:id="@+id/bt5"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:textSize="30sp"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="6"
        android:id="@+id/bt6"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:textSize="30sp"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="-"
        android:id="@+id/bt_jian"
        android:layout_rowWeight="1"
        android:textSize="30sp"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="1"
        android:id="@+id/bt1"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:textSize="30sp"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="2"
        android:id="@+id/bt2"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:textSize="30sp"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="3"
        android:id="@+id/bt3"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:textSize="30sp"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="+"
        android:id="@+id/bt_add"
        android:layout_rowWeight="1"
        android:textSize="30sp"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_columnSpan="2"
        android:gravity="center"
        android:layout_gravity="fill"
        android:text="0"
        android:id="@+id/bt0"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:textSize="30sp"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="."
        android:id="@+id/bt_dian"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:textSize="30sp"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="="
        android:id="@+id/bt_deng"
        android:layout_rowWeight="1"
        android:textSize="30sp"/>
</GridLayout>

activity_main
View Code
package com.hanqi.testapp2;

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

public class MainActivity extends AppCompatActivity {

    TextView  tv_1;

    Button bt9;
    Button bt4;
    Button bt5;
    Button bt6;
    Button bt_add;
    Button bt_jian;
    Button btc;
    Button bt_hun;
    Button bt_bai;
    Button bt_chu;
    Button bt_cheng;
    Button bt1;
    Button bt2;
    Button bt3;
    Button bt0;
    Button bt_dian;
    Button bt_deng;




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

        tv_1=(TextView)findViewById(R.id.tv_1);

        //事件源
        bt9=(Button)findViewById(R.id.bt9);
        bt4=(Button)findViewById(R.id.bt4);
        bt5=(Button)findViewById(R.id.bt5);
        bt6=(Button)findViewById(R.id.bt6);
        bt_add=(Button)findViewById(R.id.bt_add);
        bt_jian=(Button)findViewById(R.id.bt_jian);
        btc=(Button)findViewById(R.id.btc);
        bt_hun=(Button)findViewById(R.id.bt_hun);
        bt_bai=(Button)findViewById(R.id.bt_bai);
        bt_chu=(Button)findViewById(R.id.bt_chu);
        bt_cheng=(Button)findViewById(R.id.bt_cheng);
        bt1=(Button)findViewById(R.id.bt1);
        bt2=(Button)findViewById(R.id.bt2);
        bt3=(Button)findViewById(R.id.bt3);
        bt0=(Button)findViewById(R.id.bt0);
        bt_dian=(Button)findViewById(R.id.bt_dian);
        bt_deng=(Button)findViewById(R.id.bt_deng);



        //给bt9按钮添加事件监听器 实现方式:1.匿名内部类 不可以复用
        bt9.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                //处理事件的业务逻辑
                tv_1.setText("9");

            }
        });

        //2.普通内部类  可以复用
        bt_OnClickListener bt_1=new bt_OnClickListener();

        btc.setOnClickListener(bt_1);
        bt4.setOnClickListener(bt_1);
        bt5.setOnClickListener(bt_1);
        bt6.setOnClickListener(bt_1);
        bt_jian.setOnClickListener(bt_1);
        btc.setOnClickListener(bt_1);
        bt_hun.setOnClickListener(bt_1);
        bt_bai.setOnClickListener(bt_1);
        bt_chu.setOnClickListener(bt_1);
        bt_cheng.setOnClickListener(bt_1);
        bt1.setOnClickListener(bt_1);
        bt2.setOnClickListener(bt_1);
        bt3.setOnClickListener(bt_1);
        bt0.setOnClickListener(bt_1);
        bt_dian.setOnClickListener(bt_1);
        bt_deng.setOnClickListener(bt_1);
        bt_add.setOnClickListener(bt_1);
    }

    //内部类实现OnClickListener接口
    class  bt_OnClickListener implements  View.OnClickListener
    {
        @Override
        //v 事件源
        public void onClick(View v) {

            //转成按钮
            Button bt=(Button)v;

            //取得按钮上的文字
            String str=bt.getText().toString();

            //处理事件的业务逻辑 设置显示文字
            tv_1.setText(str);
        }

    }

    //3.关联方式
    public  void bt7_OnClick(View v)
    {
        tv_1.setText("7");
    }

    public  void bt8_OnClick(View v)
    {
        tv_1.setText("8");
    }
}

MainActivity
View Code
原文地址:https://www.cnblogs.com/bilibiliganbei/p/5478870.html