Programma: SOMMA = A + B (non funziona...)

di Anonimizzato11068 il
13 risposte
Ho creato un app "stratosferica" ( ) che fa la somma di A con B ed in teoria dovrebbe funzionare ma quando lancio la app sullo smartphone virtuale (la versione di Android è quella giusta, tranquilli...) il decive mi dice che l'applicativo è stato chiuso. Nel "pannello di controllo" vedo la app installata ma non parte quindi deduco che sia un errore di scrittura non segnalatomi da Eclipse. Mi sapreste trovare l'errore in questo programma?

MainActivity.java
package com.somma.sommanumeri;

import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity {
	EditText campoA, campoB, campoRISULTATO;
	Button oggetto_bottone;

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

		campoA = (EditText) this.findViewById(R.id.A);
		campoB = (EditText) this.findViewById(R.id.B);
		campoRISULTATO = (EditText) this.findViewById(R.id.risultato);
		oggetto_bottone = (Button) this.findViewById(R.id.bottone);
		oggetto_bottone.setOnClickListener(new OnClickListener() {
			public void onClick(View arg0) {
				try {
					String a = campoA.getText().toString();
					String b = campoB.getText().toString();
					double value_a = Double.parseDouble(a);
					double value_b = Double.parseDouble(b);
					double s = value_a + value_b;
					campoRISULTATO.setText("" + s);
				} catch (Exception e) {
					campoRISULTATO.setText("Valore inesistente!");
				}
			}
		});
	}
}
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView2"
        android:layout_alignParentTop="true"
        android:layout_marginTop="21dp"
        android:text="SOMMA NUMERI" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/B"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="45dp"
        android:text="A =" />

    <EditText
        android:id="@+id/A"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/textView2"
        android:layout_alignBottom="@+id/textView2"
        android:layout_alignLeft="@+id/editText2"
        android:ems="10"
        android:hint="Scrivi il valore di A" >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/risultato"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/editText2"
        android:layout_below="@+id/editText2"
        android:layout_marginTop="16dp"
        android:ems="10"
        android:hint="0" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/risultato"
        android:layout_alignBottom="@+id/risultato"
        android:layout_alignLeft="@+id/textView5"
        android:text="A + B =" />

    <EditText
        android:id="@+id/editText2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/textView5"
        android:layout_below="@+id/A"
        android:layout_marginTop="18dp"
        android:ems="10"
        android:hint="Scrivi il valore di B" />

    <TextView
        android:id="@+id/B"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/editText2"
        android:layout_alignBottom="@+id/editText2"
        android:layout_alignLeft="@+id/textView4"
        android:text="B =" />

    <TextView
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/bottone"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="72dp"
        android:text="Il programma calcola la somma di due numeri." />

    <Button
        android:id="@+id/bottone"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView5"
        android:layout_below="@+id/risultato"
        android:layout_marginTop="34dp"
        android:text="CALCOLA" />

</RelativeLayout>
MESSAGGIO DI ERRORE: "Unfortunately, SommaNumeri has stopped."
OK

13 Risposte

  • Ciao, prova con
    campoA = (EditText) findViewById(R.id.A);
    Cioè senza il this. Analogamente negli altri casi.
  • Senza il this continua a non funzionare.
  • Posta il LogCat
  • Che roba è?
  • Cioè programmi per Android e non sai cos'è il LogCat??
    Se sei su Eclipse apri questo LogCat (Window -> Show View -> LogCat o qualcosa del genere) e ti fa vedere tutti gli errori riscontrati, compresi i numeri delle righe alle quali si sono verificati.
  • In alto c'è un pulsante per esportare il LogCat in formato testuale.
  • C'è un errore negli id. Ad esempio l'oggetto con id B non è il campo (EditText) ma la sua etichetta (TextView).
  • Grazie mille!

    Comunque Eclipse non mi segnava l'errore, è proprio una ciofecca, conviene cambiare IDE secondo voi?

    C'è un sistema per far si che si crei in automatico un collegamento sul desktop senza dover andare a recuperare l'applicazione dalle app?
  • Eclipse non ti segnalava l'errore perchè in realtà non era un errore: semplicemente facevi il casting di un oggetto verso un tipo non compatibile, che quindi generava un'eccezione.
    Il discorso del collegamento non l'ho molto capito: vuoi un collegamento alla tua app sulla home del telefono? Allora dal menu applicazioni tieni premuta l'icona della tua app: comparirà la home sulla quale puoi rilasciare questo collegamento.
  • minomic ha scritto:


    Il discorso del collegamento non l'ho molto capito: vuoi un collegamento alla tua app sulla home del telefono? Allora dal menu applicazioni tieni premuta l'icona della tua app: comparirà la home sulla quale puoi rilasciare questo collegamento.
    Esattamente, hai capito perfettamente. Vorrei che questa cosa venisse fatta in automatico, alcune app che si scaricano lo fanno in automatico...
  • Il fatto di creare automaticamente lo shortcut sulla home è un qualcosa che fa il google play in automatico ma funziona solamente se scarichi un'app da lì..
Devi accedere o registrarti per scrivere nel forum
13 risposte