Android: App Calcolatrice

google-android-mascot

Ciao a tutti cari amici di iProg  e ben tornati ad un nuovo tutorial riguardante la programmazione di applicazioni Android. In questo tutorial  vi mostrerò come creare  una calcolatrice molto rudimentale, ma nello stesso tempo ottimale per il nostro scopo, ovvero esplorare le potenzialità della piattaforma Android.  Per prima cosa creiamo un nuovo progetto come vi ho mostrato l’ultima volta e diamogli il nome di Calcolatrice, per il resto lasciamo tutto uguale. La prima cosa che faremo è creare l’interfaccia grafica, essa è  molto basilare infatti è composta solamente da 4 bottoni per le 4 operazioni fondamentali e 2 campi di testo,  il tutto avrà il seguente aspetto:

Schermata 2014-10-07 alle 19.51.16

Per creare la seguente interfaccia potete copiare il seguente codice all’interno del file .xml

 

<LinearLayout
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 xmlns:android="http://schemas.android.com/apk/res/android">

<EditText
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:id="@+id/editText1"
 android:layout_margin="10dp" />

<EditText
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:id="@+id/editText2"
 android:layout_margin="10dp" />

<TableRow
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:layout_gravity="center_horizontal"
 android:layout_margin="5dp">

<Button
 android:layout_width="0dp"
 android:layout_height="wrap_content"
 android:text="+"
 android:id="@+id/buttonPiu"
 android:layout_margin="3dp"
 android:layout_gravity="center_horizontal"
 android:layout_weight="1" />

<Button
 android:layout_width="0dp"
 android:layout_height="wrap_content"
 android:text="-"
 android:id="@+id/buttonMeno"
 android:layout_margin="3dp"
 android:layout_gravity="center_horizontal"
 android:layout_weight="1" />

<Button
 android:layout_width="0dp"
 android:layout_height="wrap_content"
 android:text="/"
 android:id="@+id/buttonDiviso"
 android:layout_margin="3dp"
 android:layout_gravity="center_horizontal"
 android:layout_weight="1" />

<Button
 android:layout_width="0dp"
 android:layout_height="wrap_content"
 android:text="*"
 android:id="@+id/buttonPer"
 android:layout_margin="3dp"
 android:layout_gravity="center_horizontal|right"
 android:layout_weight="1" />
 </TableRow>

</LinearLayout>

Una volta impostata l’interfaccia grafica passiamo all’implementazione del codice, quindi rechiamoci presso il file MyActivity.java:

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import java.lang.Float;

public class MyActivity extends ActionBarActivity implements View.OnClickListener {

 //Dichiarazioni
 EditText textUno;
 EditText tetNumDue;
 Button bPiu;
 Button bPer;
 Button bDiviso;
 Button bMeno;

 @Override

 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);

 setContentView(R.layout.activity_my);
 //Setto il tutto
 textUno=(EditText)findViewById(R.id.editText1);
 tetNumDue=(EditText)findViewById(R.id.editText2);
 bPiu =(Button)findViewById(R.id.buttonPiu);
 bPer =(Button)findViewById(R.id.buttonPer);
 bDiviso=(Button)findViewById(R.id.buttonDiviso);
 bMeno =(Button)findViewById(R.id.buttonMeno);

 bPiu.setOnClickListener(this);
 bPer.setOnClickListener(this);
 bDiviso.setOnClickListener(this);
 bMeno.setOnClickListener(this);

 }

 //implemento il metodo onCick dell'interfaccia OnClickListener
 public void onClick(View v) {
 //Creo un oggetto number che conterrà il risultato delle nostre operazioni
 Number risultato = 0;

 //Lo switch ci consente di determinare quale bottone è stato premuto
 switch (v.getId()) {
 case R.id.buttonPiu:
 try {
 risultato= Float.parseFloat(textUno.getText().toString())+Float.parseFloat(tetNumDue.getText().toString());
 }
 catch (Exception e){
 //un Toast è una sorta di pop up che ci consente di mostrare un messaggio momentaneo sul display
 Toast.makeText(this,"Operazione non valida", Toast.LENGTH_LONG).show();
 //pulisco i campi di testo
 textUno.setText("");
 tetNumDue.setText("");
 }
 break;
 case R.id.buttonMeno:
 try {
 risultato = Float.parseFloat(textUno.getText().toString()) - Float.parseFloat(tetNumDue.getText().toString());
 } catch (Exception e){
 //un Toast è una sorta di pop up che ci consente di mostrare un messaggio momentaneo sul display
 Toast.makeText(this,"Operazione non valida", Toast.LENGTH_LONG).show();
 //pulisco i campi di testo
 textUno.setText("");
 tetNumDue.setText("");
 }
 break;
 case R.id.buttonPer:
 try {
 risultato = Float.parseFloat(textUno.getText().toString()) * Float.parseFloat(tetNumDue.getText().toString());
 } catch (Exception e){
 //un Toast è una sorta di pop up che ci consente di mostrare un messaggio momentaneo sul display
 Toast.makeText(this,"Operazione non valida", Toast.LENGTH_LONG).show();
 //pulisco i campi di testo
 textUno.setText("");
 tetNumDue.setText("");
 }

 break;
 case R.id.buttonDiviso:
 try {
 risultato = Float.parseFloat(textUno.getText().toString()) / Float.parseFloat(tetNumDue.getText().toString());
 } catch (Exception e){
 //un Toast è una sorta di pop up che ci consente di mostrare un messaggio momentaneo sul display
 Toast.makeText(this,"Operazione non valida", Toast.LENGTH_LONG).show();
 //pulisco i campi di testo
 textUno.setText("");
 tetNumDue.setText("");
 }
 break;
 default:
 break;
 }

 //un Toast è una sorta di pop up che ci consente di mostrare un messaggio momentaneo sul display
 Toast.makeText(this, (CharSequence) risultato.toString(), Toast.LENGTH_LONG).show();
 //pulisco i campi di testo
 textUno.setText("");
 tetNumDue.setText("");
 }

 //------ Codice di default

Utilizzare un oggetto Toast per visualizzare il risultato della nostra calcolatrice non è la scelta migliore poichè magari se si preme più volte un pulsante potrebbero sovrapporsi gli output, ma ho deciso di fare ciò per introdurvi un nuovo oggetto che potete utilizzare nelle vostre applicazioni.

download_esempio-300x120

Related Posts

Come generare la documentazione per la nostra app in maniera semplice e veloce con Jazzy

Slack: La piattaforma per la comunicazione tra gruppi di lavoro

iOS: Fastlane … Il primo appriccio

iOS Continuos Integration con Xcode 9

Si prega di attivare i Javascript! / Please turn on Javascript!

Javaskripta ko calu karem! / Bitte schalten Sie Javascript!

S'il vous plaît activer Javascript! / Por favor, active Javascript!

Qing dakai JavaScript! / Qing dakai JavaScript!

Пожалуйста включите JavaScript! / Silakan aktifkan Javascript!