Calculator App in Android HelloWorld by Manasi Dharne - March 27, 2019March 28, 20190 Here ,we are creating simple and basic functions calculator App. This app can help you to understand the layouts, buttons and action handling. To create this app we need to use different widgets such as TextView, button, EditText etc.This app is able to perform following basic four mathematical functions : AdditionSubtractionMultiplicationDivision To Create any application in android we have to deal with three files: AndroidManifest.xmlactivity_main.xmlMainActivity.java Contents AndroidManifest.xml The AndroidManifest.xml contains information of your package, including components of the application such as activities, services, broadcast receivers, content providers etc. <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.calculator.calculator2"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> activity_main.xml The activity is a Java class, and the layout is an XML file, so the names we’ve given here will create a Java class file called MainActivity.java and an XML file called activity_main.xml. layout containing two EditTexts,4 Buttons and one textview. Give them id according to their name so that when we’ll write java code, it will be helpful to understand which buttons we are dealing with.To arrange these widgets we need to use different layouts.Here,we used linear layout to display EditText, Buttons and TextView in linear fashion.Use of widgets is as follows: EditText:we used two EditTexts to get two input values from user.Buttons: we used four Buttons which performs functions of addition,subtraction,multiplication and division.TextView:TextView is used to display result. <?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:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/linearLayout1" android:layout_marginLeft="10pt" android:layout_marginRight="10pt" android:layout_marginTop="3pt"> <EditText android:layout_weight="1" android:layout_height="wrap_content" android:layout_marginRight="5pt" android:id="@+id/etNum1" android:layout_width="match_parent" android:inputType="numberDecimal"> </EditText> <EditText android:layout_height="wrap_content" android:layout_weight="1" android:layout_marginLeft="5pt" android:id="@+id/etNum2" android:layout_width="match_parent" android:inputType="numberDecimal"> </EditText> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/linearLayout2" android:layout_marginTop="3pt" android:layout_marginLeft="5pt" android:layout_marginRight="5pt"> <Button android:layout_height="wrap_content" android:layout_width="match_parent" android:layout_weight="1" android:text="+" android:textSize="8pt" android:id="@+id/btnAdd"> </Button> <Button android:layout_height="wrap_content" android:layout_width="match_parent" android:layout_weight="1" android:text="-" android:textSize="8pt" android:id="@+id/btnSub"> </Button> <Button android:layout_height="wrap_content" android:layout_width="match_parent" android:layout_weight="1" android:text="*" android:textSize="8pt" android:id="@+id/btnMult"> </Button> <Button android:layout_height="wrap_content" android:layout_width="match_parent" android:layout_weight="1" android:text="/" android:textSize="8pt" android:id="@+id/btnDiv"> </Button> </LinearLayout> <TextView android:layout_height="wrap_content" android:layout_width="match_parent" android:layout_marginLeft="5pt" android:layout_marginRight="5pt" android:textSize="12pt" android:layout_marginTop="3pt" android:id="@+id/tvResult" android:gravity="center_horizontal"> </TextView> </LinearLayout> MainActivity.java The main activity code is a Java file MainActivity.java. This is the actual application file which ultimately gets converted to a Dalvik executable and runs your application. OnClick Listener: Tis listener is used to get get result once we click on button.In this example,to get input from user we used getText() method.Once user input two values to perform operation user need to press any button.switch case is used to give functionality to buttons.Suppose user clicked on Addition button control goes to case R.id.btnAdd and it performs ‘+’ operation package com.calculator.calculator2; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.text.TextUtils; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.view.View.OnClickListener; public class MainActivity extends AppCompatActivity implements OnClickListener { EditText etNum1; EditText etNum2; Button btnAdd; Button btnSub; Button btnMult; Button btnDiv; TextView tvResult; String oper = ""; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); etNum1 = (EditText) findViewById(R.id.etNum1); etNum2 = (EditText) findViewById(R.id.etNum2); btnAdd = (Button) findViewById(R.id.btnAdd); btnSub = (Button) findViewById(R.id.btnSub); btnMult = (Button) findViewById(R.id.btnMult); btnDiv = (Button) findViewById(R.id.btnDiv); tvResult = (TextView) findViewById(R.id.tvResult); btnAdd.setOnClickListener(this); btnSub.setOnClickListener(this); btnMult.setOnClickListener(this); btnDiv.setOnClickListener(this); } @Override public void onClick(View v) { float num1 = 0; float num2 = 0; float result = 0; // check if the fields are empty if (TextUtils.isEmpty(etNum1.getText().toString()) || TextUtils.isEmpty(etNum2.getText().toString())) { return; } num1 = Float.parseFloat(etNum1.getText().toString()); num2 = Float.parseFloat(etNum2.getText().toString()); switch (v.getId()) { case R.id.btnAdd: oper = "+"; result = num1 + num2; break; case R.id.btnSub: oper = "-"; result = num1 - num2; break; case R.id.btnMult: oper = "*"; result = num1 * num2; break; case R.id.btnDiv: oper = "/"; result = num1 / num2; break; default: break; } // form the output line tvResult.setText(num1 + " " + oper + " " + num2 + " = " + result); } } Output: Share this:Click to share on Twitter (Opens in new window)Click to share on Facebook (Opens in new window)MoreClick to share on LinkedIn (Opens in new window)Click to share on WhatsApp (Opens in new window)Click to email a link to a friend (Opens in new window)Like this:Like Loading... Related