Make a CALCULATOR App with Xamarin Android #1 (Code)

2  comments

In this tutorial you will learn how to make a simple android calculator app. More precisely, in this first part we will be dealing with the UI – writing XML, using LinearLayout, GridLayout, support libraries, custom styles and more Android goodness!

 

This post contains all the code that’s been written in this YouTube video.

 

You can also check out the GitHub repository: https://github.com/ResoCoder/Simple-Calculator—Xamarin-Android

Main.axml

<?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"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <HorizontalScrollView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1">
        <TextView
            android:id="@+id/calculator_text_view"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:padding="10dp"
            android:textSize="50sp"
            android:text="123" />
    </HorizontalScrollView>
    <android.support.v7.widget.GridLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="4"
        app:orientation="horizontal"
        app:rowCount="5"
        app:columnCount="4">
        <Button
            style="@style/button_calculator"
            app:layout_columnSpan="4"
            android:text="DEL" />
        <Button
            style="@style/button_calculator"
            android:text="7" />
        <Button
            style="@style/button_calculator"
            android:text="8" />
        <Button
            style="@style/button_calculator"
            android:text="9" />
        <Button
            style="@style/button_calculator"
            android:text="÷" />
        <Button
            style="@style/button_calculator"
            android:text="4" />
        <Button
            style="@style/button_calculator"
            android:text="5" />
        <Button
            style="@style/button_calculator"
            android:text="6" />
        <Button
            style="@style/button_calculator"
            android:text="×" />
        <Button
            style="@style/button_calculator"
            android:text="1" />
        <Button
            style="@style/button_calculator"
            android:text="2" />
        <Button
            style="@style/button_calculator"
            android:text="3" />
        <Button
            style="@style/button_calculator"
            android:text="-" />
        <Button
            style="@style/button_calculator"
            android:text="." />
        <Button
            style="@style/button_calculator"
            android:text="0" />
        <Button
            style="@style/button_calculator"
            android:text="=" />
        <Button
            style="@style/button_calculator"
            android:text="+" />
    </android.support.v7.widget.GridLayout>
</LinearLayout>

 

styles.xml

<?xml version="1.0" encoding="utf-8" ?>
<resources>
  <style name="button_calculator">
    <item name="android:layout_width">0dp</item>
    <item name="android:layout_height">0dp</item>
    <item name="layout_rowWeight">1</item>
    <item name="layout_columnWeight">1</item>
    <item name="android:textSize">25dp</item>
    <item name="android:onClick">ButtonClick</item>
  </style>
</resources>

 

About the author 

Matt Rešetár

Matt is an app developer with a knack for teaching others. Working as a freelancer and most importantly developer educator, he is set on helping other people succeed in their Flutter app development career.

You may also like

  • I get the following error:

    Severity Code Description Project File Line Suppression State
    Error No resource found that matches the given name (at ‘theme’ with value ‘@style/AppTheme’). Calc3 P:\C#\Android\Calc3\Calc3\obj\Debug\MonoAndroid81\android\manifest\AndroidManifest.xml 7

    And here’s the Manifest file:

  • Also when I tried to send the comment I got this:

    Notice: Trying to get property of non-object in /home/resocode/public_html/wp-content/plugins/crayon-syntax-highlighter/crayon_wp.class.php on line 717

    Notice: Trying to get property of non-object in /home/resocode/public_html/wp-content/plugins/crayon-syntax-highlighter/crayon_wp.class.php on line 727

    Warning: Cannot modify header information – headers already sent by (output started at /home/resocode/public_html/wp-content/plugins/crayon-syntax-highlighter/crayon_wp.class.php:717) in /home/resocode/public_html/wp-content/plugins/jetpack/modules/subscriptions.php on line 764

    Warning: Cannot modify header information – headers already sent by (output started at /home/resocode/public_html/wp-content/plugins/crayon-syntax-highlighter/crayon_wp.class.php:717) in /home/resocode/public_html/wp-content/plugins/jetpack/modules/subscriptions.php on line 770

    Warning: Cannot modify header information – headers already sent by (output started at /home/resocode/public_html/wp-content/plugins/crayon-syntax-highlighter/crayon_wp.class.php:717) in /home/resocode/public_html/wp-includes/comment.php on line 541

    Warning: Cannot modify header information – headers already sent by (output started at /home/resocode/public_html/wp-content/plugins/crayon-syntax-highlighter/crayon_wp.class.php:717) in /home/resocode/public_html/wp-includes/comment.php on line 542

    Warning: Cannot modify header information – headers already sent by (output started at /home/resocode/public_html/wp-content/plugins/crayon-syntax-highlighter/crayon_wp.class.php:717) in /home/resocode/public_html/wp-includes/comment.php on line 543

    Warning: Cannot modify header information – headers already sent by (output started at /home/resocode/public_html/wp-content/plugins/crayon-syntax-highlighter/crayon_wp.class.php:717) in /home/resocode/public_html/wp-includes/pluggable.php on line 1219

    And here’s the Manifest file:

  • {"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}
    >