用安卓写一个简单的计算器 android studio

这篇博客介绍了如何在Android Studio中编写一个简单的计算器应用。主要包括MainActivity.java的源代码和activity_main.xml布局文件的设定,以及drawable资源文件夹下的change.xml、gray.xml、orange.xml和white.xml,用于设置不同颜色主题。
摘要由CSDN通过智能技术生成

 

具体源代码

MainActivity.java

package com.example.calculator;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
        Button btn_clean,btn_del,btn_divide,btn_0,btn_1,btn_2,btn_3,btn_4,btn_5,btn_6,btn_7,btn_8,btn_9,
                btn_multiply,btn_add,btn_minus,btn_point,btn_equal;
        TextView textView;
        boolean clear_flag;                    //清空标识
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate (savedInstanceState);
            setContentView (R.layout.activity_main);
            btn_0 = findViewById(R.id.btn_0);        //初始化
            btn_1 = findViewById(R.id.btn_1);
            btn_2 = findViewById(R.id.btn_2);
            btn_3 = findViewById(R.id.btn_3);
            btn_4 = findViewById(R.id.btn_4);
            btn_5 = findViewById(R.id.btn_5);
            btn_6 = findViewById(R.id.btn_6);
            btn_7 = findViewById(R.id.btn_7);
            btn_8 = findViewById(R.id.btn_8);
            btn_9 = findViewById(R.id.btn_9);
            btn_multiply = findViewById(R.id.btn_multiply);
            btn_divide = findViewById(R.id.btn_divide);
            btn_add = findViewById(R.id.btn_add);
            btn_minus = findViewById(R.id.btn_minus);
            btn_point = findViewById(R.id.btn_point);
            btn_del =findViewById(R.id.btn_del);
            btn_equal = findViewById(R.id.btn_equal);
            btn_clean = findViewById(R.id.btn_clean);

            textView = findViewById(R.id.textView);
            //设置按钮的点击事件
            btn_0.setOnClickListener(this);
            btn_1.setOnClickListener(this);
            btn_2.setOnClickListener(this);
            btn_3.setOnClickListener(this);
            btn_4.setOnClickListener(this);
            btn_5.setOnClickListener(this);
            btn_6.setOnClickListener(this);
            btn_7.setOnClickListener(this);
            btn_8.setOnClickListener(this);
            btn_9.setOnClickListener(this);
            btn_minus.setOnClickListener(this);
            btn_multiply.setOnClickListener(this);
            btn_del.setOnClickListener(this);
            btn_divide.setOnClickListener(this);
            btn_point.setOnClickListener(this);
            btn_add.setOnClickListener(this);
            btn_equal.setOnClickListener(this);
            btn_clean.setOnClickListener(this);
        }

        public void onClick(View v) {
            String str = textView.getText().toString();
            switch(v.getId ()){
                case R.id.btn_0:
                case R.id.btn_1:
                case R.id.btn_2:
                case R.id.btn_3:
                case R.id.btn_4:
                case R.id.btn_5:
                case R.id.btn_6:
                case R.id.btn_7:
                case R.id.btn_8:
                case R.id.btn_9:
                case R.id.btn_point:
                    if(clear_flag){
                        clear_flag=false;
                        str="";
                        textView.setText ("");
                    }
                    textView.setText(str+((Button)v).getText ());
                    break;

                case R.i
  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,下面是一个简单Android计算器的实现步骤: 1. 创建一个新的Android项目,并在布局文件中添加一个EditText组件来显示计算结果,一个TableLayout组件来放置计算器的按钮。 2. 在Activity的Java文件中,声明EditText和Button对象,并使用findViewById方法将它们与布局文件中的组件关联起来。 3. 为每个数字和操作符按钮添加点击事件监听器。在监听器中,将每个点击的按钮的文本添加到EditText中。 4. 添加一个“=”按钮的监听器,在该监听器中,解析EditText中的表达式并对其进行计算。可以使用Java的ScriptEngine类来实现计算逻辑。 5. 如果用户输入了无效的表达式或操作,可以在EditText中显示错误消息。 下面是一个简单代码示例: ``` public class CalculatorActivity extends AppCompatActivity { private EditText resultEditText; private Button zeroButton, oneButton, twoButton, threeButton, fourButton, fiveButton, sixButton, sevenButton, eightButton, nineButton; private Button clearButton, plusButton, minusButton, divideButton, multiplyButton, equalButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_calculator); // Find views by id resultEditText = findViewById(R.id.resultEditText); zeroButton = findViewById(R.id.zeroButton); oneButton = findViewById(R.id.oneButton); twoButton = findViewById(R.id.twoButton); threeButton = findViewById(R.id.threeButton); fourButton = findViewById(R.id.fourButton); fiveButton = findViewById(R.id.fiveButton); sixButton = findViewById(R.id.sixButton); sevenButton = findViewById(R.id.sevenButton); eightButton = findViewById(R.id.eightButton); nineButton = findViewById(R.id.nineButton); clearButton = findViewById(R.id.clearButton); plusButton = findViewById(R.id.plusButton); minusButton = findViewById(R.id.minusButton); divideButton = findViewById(R.id.divideButton); multiplyButton = findViewById(R.id.multiplyButton); equalButton = findViewById(R.id.equalButton); // Set click listeners for number buttons zeroButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { resultEditText.append("0"); } }); oneButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { resultEditText.append("1"); } }); twoButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { resultEditText.append("2"); } }); threeButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { resultEditText.append("3"); } }); fourButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { resultEditText.append("4"); } }); fiveButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { resultEditText.append("5"); } }); sixButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { resultEditText.append("6"); } }); sevenButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { resultEditText.append("7"); } }); eightButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { resultEditText.append("8"); } }); nineButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { resultEditText.append("9"); } }); // Set click listeners for operator buttons clearButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { resultEditText.setText(""); } }); plusButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { resultEditText.append("+"); } }); minusButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { resultEditText.append("-"); } }); divideButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { resultEditText.append("/"); } }); multiplyButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { resultEditText.append("*"); } }); equalButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String expression = resultEditText.getText().toString(); if (expression.isEmpty()) { return; } ScriptEngine engine = new ScriptEngineManager().getEngineByName("js"); try { Object result = engine.eval(expression); resultEditText.setText(result.toString()); } catch (ScriptException e) { resultEditText.setText("Error"); } } }); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

格瑞丝网络

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值