Calculator Problems - Android Programming

前端 未结 2 1158
Happy的楠姐
Happy的楠姐 2020-12-21 23:45

I\'m trying to design a simple calculator for use as a scoreboard for a game or two. Ultimately, I want to be able to select the number of players, have that many score-trac

相关标签:
2条回答
  • 2020-12-22 00:28

    How is this example?

    Here is the Main Class called "CalculatorExample.java"

    package com.calculatorExample;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;
    
    public class CalculatorExample extends Activity implements android.view.View.OnClickListener{
        Button add, subtract, multiply, divide;
        TextView firstInput, secondInput, output;
    
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
    
            // Reference TextViews and Buttons
            firstInput = (TextView) findViewById(R.id.firstIput);
            secondInput = (TextView) findViewById(R.id.secondInput);
            output = (TextView) findViewById(R.id.output);
            add = (Button) findViewById(R.id.add);
            subtract = (Button) findViewById(R.id.subtract);
            multiply = (Button) findViewById(R.id.multiply);
            divide = (Button) findViewById(R.id.divide);
    
            // Set listeners for when buttons are pressed
            add.setOnClickListener(this);
            subtract.setOnClickListener(this);
            multiply.setOnClickListener(this);
            divide.setOnClickListener(this);
    
        }
    
        /**
         * Switch statement to decide which button was pressed
         */
        public void onClick(View arg0) {
            // Get values from top two TextViews
            double firstInputValue = Double.parseDouble(firstInput.getText().toString());
            double secondInputValue = Double.parseDouble(secondInput.getText().toString());
            // Initialise output
            double outputValue = 0;
    
            // Perform relevant operations
            switch(arg0.getId()){
            case R.id.add:
                outputValue = firstInputValue + secondInputValue;
                break;
            case R.id.subtract:
                outputValue = firstInputValue - secondInputValue;
                break;
            case R.id.multiply:
                outputValue = firstInputValue * secondInputValue;
                break;
            case R.id.divide:
                outputValue = firstInputValue / secondInputValue;
                break;
            }
            // Add result to Running total stored in output TextView
            outputValue += Double.parseDouble(output.getText().toString());
            output.setText("" + outputValue);
    
        }
    }
    

    And here is the XML file ("main.xml")

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
        <LinearLayout 
            android:weightSum="100"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
        >
            <EditText 
                android:layout_weight="50"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:id="@+id/firstIput">
            </EditText>
            <EditText 
                android:layout_weight="50"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content" 
                android:id="@+id/secondInput">
            </EditText>
        </LinearLayout>
        <LinearLayout 
            android:weightSum="100"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
        >
            <Button 
                android:layout_weight="50"
                android:text="+" 
                android:id="@+id/add" 
                android:layout_width="fill_parent"
                android:layout_height="wrap_content">
            </Button>
            <Button 
                android:layout_weight="50"
                android:text="-" 
                android:id="@+id/subtract" 
                android:layout_width="fill_parent"
                android:layout_height="wrap_content">
            </Button>
        </LinearLayout>
        <LinearLayout 
            android:weightSum="100"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
        >
            <Button 
                android:layout_weight="50"
                android:text="X" 
                android:id="@+id/multiply" 
                android:layout_width="fill_parent"
                android:layout_height="wrap_content">
            </Button>
            <Button 
                android:layout_weight="50"
                android:text="/" 
                android:id="@+id/divide"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content">
            </Button>
        </LinearLayout>
        <EditText 
            android:text="0.0"
            android:layout_width="match_parent" 
            android:layout_height="wrap_content" 
            android:id="@+id/output">
        </EditText>
    </LinearLayout>
    
    0 讨论(0)
  • 2020-12-22 00:34

    Couldn't you have a String that you could append to every time a button on the calculator is pressed? Then update the calculator display with the new String?

    0 讨论(0)
提交回复
热议问题