第一个Android项目:简易计算器

一共只用了两个文件:布局文件activity_main.xml和代码逻辑实现文件MainActivity.java
在这里插入图片描述
布局文件边写边看右边的布局视图,注意每一个视图都要写长度和宽度,编译成功后logout也要看一眼,可能在build那边是成功的,但是logout那里又有错误提示,不处理的话打开APP会闪退

代码运行在模拟器上效果如图:
在这里插入图片描述

布局代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:layout_weight="3"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/input"

            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:text=""
            android:textSize="30sp"></TextView>

        <TextView
            android:id="@+id/result"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:text=""
            android:textSize="30sp"></TextView>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:orientation="horizontal"
        android:layout_weight="1.5">
        <TextView
            android:id="@+id/C"
            android:onClick="oneOnClick"
            android:layout_width="20dp"
            android:layout_weight="1"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="C"
            android:textSize="30sp">
        </TextView>
        <TextView
            android:id="@+id/plus"
            android:onClick="oneOnClick"
            android:layout_width="20dp"
            android:layout_weight="1"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="+"
            android:textSize="30sp">
        </TextView>
        <TextView
            android:id="@+id/minus"
            android:onClick="oneOnClick"
            android:layout_width="20dp"
            android:layout_weight="1"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="-"
            android:textSize="30sp">
        </TextView>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:orientation="horizontal"
        android:layout_weight="1.5">
        <TextView
            android:id="@+id/seven"
            android:onClick="oneOnClick"
            android:layout_width="20dp"
            android:layout_weight="1"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="7"
            android:textSize="30sp">
        </TextView>
        <TextView
            android:id="@+id/eight"
            android:onClick="oneOnClick"
            android:layout_width="20dp"
            android:layout_weight="1"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="8"
            android:textSize="30sp">
        </TextView>
        <TextView
            android:id="@+id/nine"
            android:onClick="oneOnClick"
            android:layout_width="20dp"
            android:layout_weight="1"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="9"
            android:textSize="30sp">
        </TextView>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:orientation="horizontal"
        android:layout_weight="1.5">
        <TextView
            android:id="@+id/four"
            android:onClick="oneOnClick"
            android:layout_width="20dp"
            android:layout_weight="1"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="4"
            android:textSize="30sp">
        </TextView>
        <TextView
            android:id="@+id/fine"
            android:onClick="oneOnClick"
            android:layout_width="20dp"
            android:layout_weight="1"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="5"
            android:textSize="30sp">
        </TextView>
        <TextView
            android:id="@+id/six"
            android:onClick="oneOnClick"
            android:layout_width="20dp"
            android:layout_weight="1"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="6"
            android:textSize="30sp">
        </TextView>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:orientation="horizontal"
        android:layout_weight="1.5">
        <TextView
            android:id="@+id/one"
            android:onClick="oneOnClick"
            android:layout_width="20dp"
            android:layout_weight="1"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="1"
            android:textSize="30sp">
        </TextView>
        <TextView
            android:id="@+id/two"
            android:onClick="oneOnClick"
            android:layout_width="20dp"
            android:layout_weight="1"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="2"
            android:textSize="30sp">
        </TextView>
        <TextView
            android:id="@+id/three"
            android:onClick="oneOnClick"
            android:layout_width="20dp"
            android:layout_weight="1"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="3"
            android:textSize="30sp">
        </TextView>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:orientation="horizontal"
        android:layout_weight="1.5">
        <TextView
            android:id="@+id/zero"
            android:onClick="oneOnClick"
            android:layout_width="20dp"
            android:layout_weight="2"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="0"
            android:textSize="30sp">
        </TextView>
        <TextView
            android:id="@+id/equal"
            android:onClick="oneOnClick"
            android:layout_width="20dp"
            android:layout_weight="1"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="="
            android:textSize="30sp">
        </TextView>
    </LinearLayout>


</LinearLayout>




逻辑代码

package com.example.littlecal;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    private TextView input;
    private TextView result;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        input = this.findViewById(R.id.input);
        result = this.findViewById(R.id.result);
    }


    String input1 = "";
    String input2 = "";
    String operation = "";
    boolean input1flag = true;

    public void oneOnClick(View view){
        if (view instanceof TextView){
            String onetext = ((TextView)view).getText().toString();
            switch (onetext){
                case "C":
                    input.setText("");
                    result.setText("");
                    input1 = "";
                    input2 = "";
                    operation = "";
                    input1flag = true;
                    break;

                case "1":
                    if(input1flag){
                        input1 += "1";
                        input.setText(input1);
                    }else {
                        input2 += "1";
                        input.setText(input1+operation+input2);
                    }
                    break;
                case "2":
                    if(input1flag){
                        input1 += "2";
                        input.setText(input1);
                    }else {
                        input2 += "2";
                        input.setText(input1+operation+input2);
                    }
                    break;
                case "3":
                    if(input1flag){
                        input1 += "3";
                        input.setText(input1);
                    }else {
                        input2 += "3";
                        input.setText(input1+operation+input2);
                    }
                    break;
                case "4":
                    if(input1flag){
                        input1 += "4";
                        input.setText(input1);
                    }else {
                        input2 += "4";
                        input.setText(input1+operation+input2);
                    }
                    break;
                case "5":
                    if(input1flag){
                        input1 += "5";
                        input.setText(input1);
                    }else {
                        input2 += "5";
                        input.setText(input1+operation+input2);
                    }
                    break;
                case "6":
                    if(input1flag){
                        input1 += "6";
                        input.setText(input1);
                    }else {
                        input2 += "6";
                        input.setText(input1+operation+input2);
                    }
                    break;
                case "7":
                    if(input1flag){
                        input1 += "7";
                        input.setText(input1);
                    }else {
                        input2 += "7";
                        input.setText(input1+operation+input2);
                    }
                    break;
                case "8":
                    if(input1flag){
                        input1 += "8";
                        input.setText(input1);
                    }else {
                        input2 += "8";
                        input.setText(input1+operation+input2);
                    }
                    break;
                case "9":
                    if(input1flag){
                        input1 += "9";
                        input.setText(input1);
                    }else {
                        input2 += "9";
                        input.setText(input1+operation+input2);
                    }
                    break;
                case "0":
                    if(input1flag){
                        input1 += "0";
                        input.setText(input1);
                    }else {
                        input2 += "0";
                        input.setText(input1+operation+input2);
                    }
                    break;
                case "+":
                    input1flag = false;
                    operation += "+";
                    input.setText(input1+operation+input2);
                    break;
                case "-":
                    input1flag = false;
                    operation += "-";
                    input.setText(input1+operation+input2);
                    break;
                case "=":
                    input.setText(input1+operation+input2+"=");  // 加个等于号更美观友好
                    int num1 = Integer.parseInt(input1);
                    int num2 = Integer.parseInt(input2);
                    if(operation.equals("+")){
                        result.setText(String.valueOf(num1+num2));
                    }
                    if(operation.equals("-")){
                        result.setText(String.valueOf(num1-num2));
                    }
                    break;



            }


        }
    }


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值