SoFunction
Updated on 2025-03-02

Android Studio implements simple calculator

This article shares the specific code of Android Studio to implement simple calculator for your reference. The specific content is as follows

1. Problem description

Design and implement a number converter that can convert any input numerical value of the numerical type into a specified number type. There are four types of number system that must be implemented: binary, octal, decimal and hexadecimal.

2. Basic requirements

(1) Use the Spinner control to list four number types, namely: binary, octal, decimal and hexadecimal;
(2) The "Numerical" input box does not use the input panel provided by the Android system to perform numerical input; and can only be integer values;

Layout code:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:andro
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Balance converter"
        android:textSize="35sp"
        android:textColor="#9900AA"/>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Input data:"
        android:textSize="30sp"
        android:textColor="#99CCAA"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:
            android:layout_width="125dp"
            android:layout_height="35dp"
            android:text="Binary type:"
            android:textSize="25sp"
            android:textColor="#000"
            />
        <Spinner
            android:
            android:layout_width="240dp"
            android:layout_height="35dp"
            android:textSize="30sp"
            />
    </LinearLayout>
    <EditText
        android:
        android:layout_width="match_parent"
        android:layout_height="wrap_content"></EditText>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Output data:"
        android:textSize="30sp"
        android:textColor="#99CCAA"/>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:
            android:layout_width="125dp"
            android:layout_height="35dp"
            android:text="Binary type:"
            android:textSize="25sp"
            android:textColor="#000"
            />
        <Spinner
            android:
            android:layout_width="240dp"
            android:layout_height="35dp"
            android:textSize="30sp"
            />
    </LinearLayout>
    <EditText
        android:
        android:layout_width="match_parent"
        android:layout_height="wrap_content"></EditText>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
    <Button
        android:
        android:layout_width="70dp"
        android:layout_height="35dp"
        android:text="0"
        android:background="@drawable/btn_1"
        />
        <Button
            android:
            android:layout_width="70dp"
            android:layout_height="35dp"
            android:text="1"
            android:background="@drawable/btn_1"
            />
        <Button
            android:
            android:layout_width="70dp"
            android:layout_height="35dp"
            android:text="2"
            android:background="@drawable/btn_1"
            />
        <Button
            android:
            android:layout_width="70dp"
            android:layout_height="35dp"
            android:text="3"
            android:background="@drawable/btn_1"
            />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <Button
            android:
            android:layout_width="70dp"
            android:layout_height="35dp"
            android:text="4"
            android:background="@drawable/btn_1"
            />
        <Button
            android:
            android:layout_width="70dp"
            android:layout_height="35dp"
            android:text="5"
            android:background="@drawable/btn_1"
            />
        <Button
            android:
            android:layout_width="70dp"
            android:layout_height="35dp"
            android:text="6"
            android:background="@drawable/btn_1"
            />
        <Button
            android:
            android:layout_width="70dp"
            android:layout_height="35dp"
            android:text="7"
            android:background="@drawable/btn_1"
            />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <Button
            android:
            android:layout_width="70dp"
            android:layout_height="35dp"
            android:text="8"
            android:background="@drawable/btn_1"
            />
        <Button
            android:
            android:layout_width="70dp"
            android:layout_height="35dp"
            android:text="9"
            android:background="@drawable/btn_1"
            />
        <Button
            android:
            android:layout_width="70dp"
            android:layout_height="35dp"
            android:text="A"
            android:background="@drawable/btn_1"
            />
        <Button
            android:
            android:layout_width="70dp"
            android:layout_height="35dp"
            android:text="B"
            android:background="@drawable/btn_1"
            />

    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <Button
            android:
            android:layout_width="70dp"
            android:layout_height="35dp"
            android:text="C"
            android:background="@drawable/btn_1"
            />
        <Button
            android:
            android:layout_width="70dp"
            android:layout_height="35dp"
            android:text="D"
            android:background="@drawable/btn_1"
            />
        <Button
            android:
            android:layout_width="70dp"
            android:layout_height="35dp"
            android:text="E"
            android:background="@drawable/btn_1"
            />
        <Button
            android:
            android:layout_width="70dp"
            android:layout_height="35dp"
            android:text="F"
            android:background="@drawable/btn_1"
            />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <Button
            android:
            android:layout_width="70dp"
            android:layout_height="35dp"
            android:text="CE"
            android:background="@drawable/btn_1"
            />
        <Button
            android:
            android:layout_width="70dp"
            android:layout_height="40dp"
            android:text="calculate"
            android:background="@drawable/btn_1"
            />
    </LinearLayout>
</LinearLayout>

Button press effect (btn_1.xml) code

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:andro>
    <item android:state_pressed="true">
        <shape>
            <solid android:color="#CC7A00"/>
            <corners android:radius="10dp"/>
        </shape>
    </item>
    <item android:state_pressed="false">
        <shape>
            <solid android:color="#FF9900"/>
            <corners android:radius="10dp"/>
        </shape>
    </item>
</selector>

MainActivity

package ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
public class MainActivity extends AppCompatActivity {
    Spinner spinner1,spinner2;
    EditText et_shuru,et_shuchu;
    Button btn_CE,btn_js;
    int ids[]={.btn_0,.btn_1,.btn_2,.btn_3,.btn_4,.btn_5, .btn_6,.btn_7,
            .btn_8,.btn_9,.btn_A,.btn_B,.btn_C,.btn_D,.btn_E,.btn_F};
    String  temp=null,num1=null,num2=null,num3=null,num4=null;int k;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        (savedInstanceState);
        setContentView(.activity_main);
        btn_CE=findViewById(.btn_CE);
        btn_js=findViewById( .btn_js);
       btn_CE.setOnClickListener(new () {
           @Override
           public void onClick(View v) {
               et_shuru.setText("");
               et_shuchu.setText("");
           }
       });
        for(int i=0;i&lt;;i++){
            Button btn = findViewById(ids[i]);

            if(btn != null)
                (new () {
                    @Override
                    public void onClick(View v) {
                        switch (()){
                           case  .btn_0:
                                et_shuru.setText(et_shuru.getText()+"0");
                            break;
                            case  .btn_1:
                                et_shuru.setText(et_shuru.getText()+"1");
                                break;
                            case  .btn_2:
                                et_shuru.setText(et_shuru.getText()+"2");
                                break;
                            case  .btn_3:
                                et_shuru.setText(et_shuru.getText()+"3");
                                break;
                            case  .btn_4:
                                et_shuru.setText(et_shuru.getText()+"4");
                                break;
                            case  .btn_5:
                                et_shuru.setText(et_shuru.getText()+"5");
                                break;
                            case  .btn_6:
                                et_shuru.setText(et_shuru.getText()+"6");
                                break;
                            case  .btn_7:
                                et_shuru.setText(et_shuru.getText()+"7");
                                break;
                            case  .btn_8:
                                et_shuru.setText(et_shuru.getText()+"8");
                                break;
                            case  .btn_9:
                                et_shuru.setText(et_shuru.getText()+"9");
                                break;
                            case  .btn_A:
                                et_shuru.setText(et_shuru.getText()+"A");
                                break;
                            case  .btn_B:
                                et_shuru.setText(et_shuru.getText()+"B");
                                break;
                            case  .btn_C:
                                et_shuru.setText(et_shuru.getText()+"C");
                                break;
                            case  .btn_D:
                                et_shuru.setText(et_shuru.getText()+"D");
                                break;
                            case  .btn_E:
                                et_shuru.setText(et_shuru.getText()+"E");
                                break;
                            case  .btn_F:
                                et_shuru.setText(et_shuru.getText()+"F");
                                break;
                        }
                    }
                });
        }
        et_shuru=findViewById(.et_shuru);
        et_shuchu=findViewById(.et_shuchu);
       spinner1=(Spinner)findViewById(.spinner1);
       spinner2=(Spinner)findViewById(.spinner2);
        //Create a data source       String[] mltems = getResources().getStringArray();
        ArrayAdapter&lt;String&gt;adapter= new ArrayAdapter&lt;String&gt;(this,.simple_spinner_item,mltems);
        (.simple_spinner_dropdown_item);
        //Bind Adapter to the control        (adapter);
        (new () {
            @Override
            public void onItemSelected(AdapterView&lt;?&gt; parent, View view, int pos, long id) {
                switch (pos){
                    case 0: k=2;setEnabled(2);break;
                    case 1: k=8;setEnabled(8);break;
                    case 2: k=10;setEnabled(10);break;
                    case 3: k=16;setEnabled(16);break;
                }
            }
            @Override
            public void onNothingSelected(AdapterView&lt;?&gt; parent) {
            }
        });
        (adapter);
        (new () {
            @Override
            public void onItemSelected(AdapterView&lt;?&gt; parent, View view, final int pos, long id) {
                switch (pos){
                    case 0: btn_js.setOnClickListener(new () {
                            @Override
                            public void onClick(View v) {
                                temp = et_shuru.getText().toString();
                                num3 = (temp, k).toString();//Convert to decimal;                                num1 = ((num3));
                                et_shuchu.setText(num1);
                            }
                        });break;
                    case 1: btn_js.setOnClickListener(new () {
                            @Override
                            public void onClick(View v) {
                                temp = et_shuru.getText().toString();
                                num3 = (temp, k).toString();//Convert to decimal;                                num2 = ((num3));
                                et_shuchu.setText(num2);
                            }
                        });break;
                    case 2: btn_js.setOnClickListener(new () {
                            @Override
                            public void onClick(View v) {
                                temp = et_shuru.getText().toString();
                                num3 = (temp, k).toString();//Convert to decimal;                                et_shuchu.setText(num3);
                            }
                        });break;
                    case 3: btn_js.setOnClickListener(new () {
                        @Override
                        public void onClick(View v) {
                            temp = et_shuru.getText().toString();
                            num3 = (temp, k).toString();//Convert to decimal;                            num4 = ((num3));
                            et_shuchu.setText(num4);
                        }
                    });break;
                }
            }
            @Override
            public void onNothingSelected(AdapterView&lt;?&gt; parent) {
            }
        });
    }
    public void setEnabled(int count){
        int i =0,size = (count,);
        for( i=0;i&lt;size;i++){
            Button btn = findViewById(ids[i]);
            if(btn != null){
                (true);
            }
        }
        for( i=size;i&lt;;i++){
            Button btn = findViewById(ids[i]);
            if(btn != null){
                (false);
            }
        }
    }
}

Data source for Spinner control ()

&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;resources&gt;
    &lt;string-array name="data"&gt;
        &lt;item&gt;Binary&lt;/item&gt;
        &lt;item&gt;Octal&lt;/item&gt;
        &lt;item&gt;Decimal&lt;/item&gt;
        &lt;item&gt;hexadecimal&lt;/item&gt;
    &lt;/string-array&gt;
&lt;/resources&gt;

The above is all the content of this article. I hope it will be helpful to everyone's study and I hope everyone will support me more.