监听器
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<?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
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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