计算器(UI事件)给按钮添加监听器

时间:2023-01-22 12:27:41
计算器(UI事件)给按钮添加监听器计算器(UI事件)给按钮添加监听器
<?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="5"
    android:columnCount="4">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_columnSpan="4"
        android:id="@+id/tv_1"
        android:text="7"
        android:textSize="30sp"
        android:paddingRight="10dp"
        android:gravity="right|center_vertical|top"
        android:textColor="#0f0"
        android:layout_rowWeight="8" />

    <Button android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="C"
        android:id="@+id/bt_C"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"/>

    <Button android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="DEL"
        android:id="@+id/bt_DEL"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"/>

    <Button android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="+/-"
        android:id="@+id/bt_*"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"/>

    <Button android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="÷"
        android:id="@+id/bt_chu"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"/>

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


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

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

    <Button android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="+"
        android:id="@+id/bt_add"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"/>

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

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

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

    <Button android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="—"
        android:id="@+id/bt_jian"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"/>

    <Button android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="1"
        android:id="@+id/bt1"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"/>

    <Button android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="2"
        android:id="@+id/bt2"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"/>

    <Button android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="3"
        android:id="@+id/bt3"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"/>

    <Button android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="×"
        android:id="@+id/bt_cheng"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"/>

    <Button android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="0"
        android:layout_columnSpan="2"
        android:layout_gravity="fill_horizontal"
        android:id="@+id/bt0"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"/>

    <Button android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="."
        android:id="@+id/bt_dian"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"/>

    <Button android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="="
        android:id="@+id/bt_dengyu"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"/>
</GridLayout>
activity_main.xml
计算器(UI事件)给按钮添加监听器计算器(UI事件)给按钮添加监听器
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 bt1;
    Button bt2;
    Button bt3;
    Button bt_cheng;
    Button bt0;
    Button bt_dian;
    Button bt_dengyu;
    Button bt_chu;
    Button bt_C;
    Button bt_DEL;
    Button bt_*;

    @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);
        bt1=(Button)findViewById(R.id.bt1);
        bt2=(Button)findViewById(R.id.bt2);
        bt3=(Button)findViewById(R.id.bt3);
        bt_cheng=(Button)findViewById(R.id.bt_cheng);
        bt0=(Button)findViewById(R.id.bt0);
        bt_dian=(Button)findViewById(R.id.bt_dian);
        bt_dengyu=(Button)findViewById(R.id.bt_dengyu);
        bt_chu=(Button)findViewById(R.id.bt_chu);
        bt_C=(Button)findViewById(R.id.bt_C);
        bt_DEL=(Button)findViewById(R.id.bt_DEL);
        bt_*=(Button)findViewById(R.id.bt_*);

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

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

            }
        });

        //2.普通内部类

        bt_OnClickListener bt_l=new bt_OnClickListener();

        bt_add.setOnClickListener(bt_l);
        bt4.setOnClickListener(bt_l);
        bt5.setOnClickListener(bt_l);
        bt6.setOnClickListener(bt_l);
        bt_jian.setOnClickListener(bt_l);
        bt1.setOnClickListener(bt_l);
        bt2.setOnClickListener(bt_l);
        bt3.setOnClickListener(bt_l);
        bt_cheng.setOnClickListener(bt_l);
        bt0.setOnClickListener(bt_l);
        bt_dian.setOnClickListener(bt_l);
        bt_dengyu.setOnClickListener(bt_l);
        bt_chu.setOnClickListener(bt_l);
        bt_C.setOnClickListener(bt_l);
        bt_DEL.setOnClickListener(bt_l);
        bt_*.setOnClickListener(bt_l);
    }

    //内部类实现OnClickListrner接口
    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.java

 计算器(UI事件)给按钮添加监听器