0% found this document useful (0 votes)
74 views14 pages

Program Code

The document contains XML code for the layout and design of an Android calculator application. It includes the layout files for the main activity, colors, themes, and the buttons. The main activity layout defines TextViews for the input and output and includes the buttons layout. The buttons layout contains a grid of buttons laid out in rows and columns for the numeric buttons and operations. It also defines colors and themes for the app.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
74 views14 pages

Program Code

The document contains XML code for the layout and design of an Android calculator application. It includes the layout files for the main activity, colors, themes, and the buttons. The main activity layout defines TextViews for the input and output and includes the buttons layout. The buttons layout contains a grid of buttons laid out in rows and columns for the numeric buttons and operations. It also defines colors and themes for the app.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

Program Code

activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/black"
android:orientation="vertical"
tools:context=".MainActivity">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textSize="40sp"
android:textColor="@color/white"
android:padding="10dp"
android:layout_gravity="end"
android:id="@+id/input"/>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textSize="60sp"
android:textColor="@color/white"
android:padding="10dp"
android:layout_gravity="end"
android:id="@+id/output"/>

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:background="@color/black"
android:layout_marginTop="130dp"
android:layout_gravity="bottom">

<include
android:layout_width="match_parent"
android:layout_height="match_parent"
layout="@layout/buttons_layout"/>

</RelativeLayout>
</LinearLayout>
colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
<color name="purple_200">#FFBB86FC</color>
<color name="purple_500">#FF6200EE</color>
<color name="purple_700">#FF3700B3</color>
<color name="teal_700">#FF018786</color>
<color name="teal_200">#FF03DAC5</color>
<color name="Lavender">#ACB4F6</color>
</resources>

themes.xml
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Base.Theme.Calculator" parent="Theme.Material3.DayNight.NoActionBar">
<!-- Customize your light theme here. -->
<item name="colorPrimary">@color/Lavender</item>
<item name="colorPrimaryVariant">@color/Lavender</item>
<item name="colorOnPrimary">@color/white</item>
<item name="colorSecondary">@color/teal_200</item>
<item name="colorSecondaryVariant">@color/teal_700</item>
<item name="colorOnSecondary">@color/black</item>

<item name="android:statusBarColor">?attr/colorPrimaryVariant</item>
</style>

<style name="Theme.Calculator" parent="Base.Theme.Calculator" />


</resources>

buttons_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto">

<GridLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:rowCount="5"
android:columnCount="4">

<com.google.android.material.button.MaterialButton
android:id="@+id/off"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:text="OFF"
android:textColor="#000000"
android:backgroundTint="#BFBDBD"
android:textSize="33sp"
android:layout_margin="3dp"
android:layout_row="0"
android:layout_column="0"
android:layout_columnWeight="1"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/clear"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:text="C"
android:textColor="#000000"
android:backgroundTint="#BFBDBD"
android:textSize="35sp"
android:layout_margin="3dp"
android:layout_row="0"
android:layout_column="1"
android:layout_columnWeight="1"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/percent"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:text="%"
android:textColor="#000000"
android:backgroundTint="#BFBDBD"
android:textSize="40sp"
android:layout_margin="3dp"
android:layout_row="0"
android:layout_column="2"
android:layout_columnWeight="1"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/division"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:text="/"
android:textColor="#FFFFFF"
android:backgroundTint="#FF9800"
android:textSize="40sp"
android:layout_margin="3dp"
android:layout_row="0"
android:layout_column="3"
android:layout_columnWeight="1"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/b7"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:text="7"
android:textColor="@color/white"
android:backgroundTint="#373737"
android:textSize="30sp"
android:layout_margin="3dp"
android:layout_row="1"
android:layout_column="0"
android:layout_columnWeight="1"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/b8"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:text="8"
android:textColor="@color/white"
android:backgroundTint="#373737"
android:textSize="30sp"
android:layout_margin="3dp"
android:layout_row="1"
android:layout_column="1"
android:layout_columnWeight="1"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/b9"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:text="9"
android:textColor="@color/white"
android:backgroundTint="#373737"
android:textSize="30sp"
android:layout_margin="3dp"
android:layout_row="1"
android:layout_column="2"
android:layout_columnWeight="1"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/multiply"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:text="x"
android:textColor="#FFFFFF"
android:backgroundTint="#FF9800"
android:textSize="40sp"
android:layout_margin="3dp"
android:layout_row="1"
android:layout_column="3"
android:layout_columnWeight="1"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/b4"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:text="4"
android:textColor="@color/white"
android:backgroundTint="#373737"
android:textSize="30sp"
android:layout_margin="3dp"
android:layout_row="2"
android:layout_column="0"
android:layout_columnWeight="1"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/b5"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:text="5"
android:textColor="@color/white"
android:backgroundTint="#373737"
android:textSize="30sp"
android:layout_margin="3dp"
android:layout_row="2"
android:layout_column="1"
android:layout_columnWeight="1"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/b6"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:text="6"
android:textColor="@color/white"
android:backgroundTint="#373737"
android:textSize="30sp"
android:layout_margin="3dp"
android:layout_row="2"
android:layout_column="2"
android:layout_columnWeight="1"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/subtract"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:text="-"
android:textColor="#FFFFFF"
android:backgroundTint="#FF9800"
android:textSize="40sp"
android:layout_margin="3dp"
android:layout_row="2"
android:layout_column="3"
android:layout_columnWeight="1"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/b1"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:text="1"
android:textColor="@color/white"
android:backgroundTint="#373737"
android:textSize="30sp"
android:layout_margin="3dp"
android:layout_row="3"
android:layout_column="0"
android:layout_columnWeight="1"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/b2"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:text="2"
android:textColor="@color/white"
android:backgroundTint="#373737"
android:textSize="30sp"
android:layout_margin="3dp"
android:layout_row="3"
android:layout_column="1"
android:layout_columnWeight="1"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/b3"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:text="3"
android:textColor="@color/white"
android:backgroundTint="#373737"
android:textSize="30sp"
android:layout_margin="3dp"
android:layout_row="3"
android:layout_column="2"
android:layout_columnWeight="1"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/add"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:text="+"
android:textColor="#FFFFFF"
android:backgroundTint="#FF9800"
android:textSize="35sp"
android:layout_margin="3dp"
android:layout_row="3"
android:layout_column="3"
android:layout_columnWeight="1"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/b0"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:text="0"
android:textColor="@color/white"
android:backgroundTint="#373737"
android:textSize="30sp"
android:layout_margin="3dp"
android:layout_row="4"
android:layout_column="0"
android:layout_columnSpan="2"
android:layout_columnWeight="1"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/dot"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:text="."
android:textColor="@color/white"
android:backgroundTint="#373737"
android:textSize="30sp"
android:layout_margin="3dp"
android:layout_row="4"
android:layout_column="2"
android:layout_columnWeight="1"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/equal"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:text="="
android:textColor="@color/white"
android:backgroundTint="#FF9800"
android:textSize="30sp"
android:layout_margin="3dp"
android:layout_row="4"
android:layout_column="3"
android:layout_columnWeight="1"/>

</GridLayout>

</RelativeLayout>
MainActivity.java
package com.example.calculator;

import androidx.appcompat.app.AppCompatActivity;

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

import com.google.android.material.button.MaterialButton;

import java.text.DecimalFormat;

public class MainActivity extends AppCompatActivity


{
public static final char Addition='+';
public static final char Subtraction='-';
public static final char Multiplication='*';
public static final char Division='/';
public static final char Percent='%';

private char currentSymbol;

private double firstValue=Double.NaN;


private double secondValue;
private TextView inputDisplay,outputDisplay;
private DecimalFormat decimalFormat;
private MaterialButton b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,dot,add,sub,mul,percent,div,clear,off,equal;

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

decimalFormat=new DecimalFormat("#.###########");

inputDisplay=findViewById(R.id.input);
outputDisplay=findViewById(R.id.output);

b0=findViewById(R.id.b0);
b1=findViewById(R.id.b1);
b2=findViewById(R.id.b2);
b3=findViewById(R.id.b3);
b4=findViewById(R.id.b4);
b5=findViewById(R.id.b5);
b6=findViewById(R.id.b6);
b7=findViewById(R.id.b7);
b8=findViewById(R.id.b8);
b9=findViewById(R.id.b9);

add=findViewById(R.id.add);
sub=findViewById(R.id.subtract);
mul=findViewById(R.id.multiply);
div=findViewById(R.id.division);
dot=findViewById(R.id.dot);
clear=findViewById(R.id.clear);
off=findViewById(R.id.off);
equal=findViewById(R.id.equal);
percent=findViewById(R.id.percent);

b0.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
inputDisplay.setText(inputDisplay.getText()+"0");
}
});
b1.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
inputDisplay.setText(inputDisplay.getText()+"1");
}
});
b2.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
inputDisplay.setText(inputDisplay.getText()+"2");
}
});
b3.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
inputDisplay.setText(inputDisplay.getText()+"3");
}
});
b4.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
inputDisplay.setText(inputDisplay.getText()+"4");
}
});
b5.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
inputDisplay.setText(inputDisplay.getText()+"5");
}
});
b6.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
inputDisplay.setText(inputDisplay.getText()+"6");
}
});
b7.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
inputDisplay.setText(inputDisplay.getText()+"7");
}
});
b8.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
inputDisplay.setText(inputDisplay.getText()+"8");
}
});
b9.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
inputDisplay.setText(inputDisplay.getText()+"9");
}
});

add.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
allCalculation();
currentSymbol=Addition;
outputDisplay.setText(decimalFormat.format(firstValue)+"+");
inputDisplay.setText(null);
}
});
sub.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
allCalculation();
currentSymbol=Subtraction;
outputDisplay.setText(decimalFormat.format(firstValue)+"-");
inputDisplay.setText(null);
}
});
mul.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
allCalculation();
currentSymbol=Multiplication;
outputDisplay.setText(decimalFormat.format(firstValue)+"x");
inputDisplay.setText(null);
}
});
div.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
allCalculation();
currentSymbol=Division;
outputDisplay.setText(decimalFormat.format(firstValue)+"/");
inputDisplay.setText(null);
}
});
percent.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
allCalculation();
currentSymbol=Percent;
outputDisplay.setText(decimalFormat.format(firstValue)+"%");
inputDisplay.setText(null);
}
});

dot.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
inputDisplay.setText(inputDisplay.getText()+".");
}
});
clear.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
if(inputDisplay.getText().length()>0)
{
CharSequence currentText=inputDisplay.getText();
inputDisplay.setText(currentText.subSequence(0,currentText.length()-1));
}
else
{
firstValue=Double.NaN;
secondValue=Double.NaN;
inputDisplay.setText("");
outputDisplay.setText("");
}
}
});

off.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
finish();
}
});
equal.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
allCalculation();
outputDisplay.setText(decimalFormat.format(firstValue));
firstValue=Double.NaN;
currentSymbol='0';
}
});

private void allCalculation()


{
if(!Double.isNaN(firstValue))
{
secondValue=Double.parseDouble(inputDisplay.getText().toString());
inputDisplay.setText(null);

if(currentSymbol==Addition)
firstValue=this.firstValue+secondValue;
else if (currentSymbol==Subtraction)
firstValue=this.firstValue-secondValue;
else if (currentSymbol==Multiplication)
firstValue=this.firstValue*secondValue;
else if (currentSymbol==Division)
firstValue=this.firstValue/secondValue;
else if (currentSymbol==Percent)
firstValue=this.firstValue%secondValue;
}
else
{
try
{
firstValue=Double.parseDouble(inputDisplay.getText().toString());
}
catch (Exception e)
{

}
}
}
}
Output

You might also like