Android problem mit geschwindigkeitsberechnung app

dee_

Mitglied
hallo leute,
habe ein problem mit meiner app und wollte fragen ob einer von euch mir vllt. nen rat hat die logcat hab ich auch gleich mitgeschickt sobald ich zwei werte eingebe und auch berechne(calc) drücke stürzt mein programm ab weshalb, weis ich leider selbst nicht. meine vermutung ist das es i.wann mit den if-abfragen zu tun hat. da ich prüfe ob die felder leer sind.
danke schon im voraus.

Java:
package de.deeprojects.speedcalc;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class SpeedCalc extends Activity {
	private Button calc, delete;
	private EditText speed, time, way;

	/** LogCat */
	private static final String TAG = "StatusActivity";

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

		speed = (EditText) findViewById(R.id.speed);
		time = (EditText) findViewById(R.id.time);
		way = (EditText) findViewById(R.id.way);

		/** calc Button, berechne das leere Feld */
		calc = (Button) findViewById(R.id.calc);
		calc.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Log.i(TAG, "click calc Button");

				double s = Double.parseDouble(speed.getText().toString());
				double t = Double.parseDouble(time.getText().toString());
				double w = Double.parseDouble(way.getText().toString());
				double erg = 0;

				/** abfragen ob min. 2 felder ausgefüllt sind */
				if (time != null && way != null || way != null && speed != null
						|| time != null && speed != null) {

					/** speed berechnen */
					if (speed == null) {
						erg = w / t;
						speed.setText("" + erg);
					}

					/** time berechnen */
					if (time == null) {
						erg = w / s;
						time.setText("" + erg);
					}

					/** way berechnen */
					if (way == null) {
						erg = s * t;
						way.setText("" + erg);
					}
				}
			}
		});

		/** delete Button, alle Felder leeren */
		delete = (Button) findViewById(R.id.del);
		delete.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Log.i(TAG, "click delete Button");
				/** felder werden zurückgesetzt */
				speed.setText("");
				time.setText("");
				way.setText("");
			}
		});
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.menu, menu);
		return true;

	}

	public boolean onOptionsItemSelected(MenuItem item) {
		item.getItemId();
		setContentView(R.layout.about);
		return true;
	}

}

Code:
02-02 03:17:03.491: I/StatusActivity(1141): click calc Button
02-02 03:17:03.501: D/AndroidRuntime(1141): Shutting down VM
02-02 03:17:03.501: W/dalvikvm(1141): threadid=1: thread exiting with uncaught exception (group=0x40015560)
02-02 03:17:03.511: E/AndroidRuntime(1141): FATAL EXCEPTION: main
02-02 03:17:03.511: E/AndroidRuntime(1141): java.lang.NumberFormatException: 
02-02 03:17:03.511: E/AndroidRuntime(1141): 	at org.apache.harmony.luni.util.FloatingPointParser.parseDouble(FloatingPointParser.java:267)
02-02 03:17:03.511: E/AndroidRuntime(1141): 	at java.lang.Double.parseDouble(Double.java:318)
02-02 03:17:03.511: E/AndroidRuntime(1141): 	at de.deeprojects.speedcalc.SpeedCalc$1.onClick(SpeedCalc.java:35)
02-02 03:17:03.511: E/AndroidRuntime(1141): 	at android.view.View.performClick(View.java:2485)
02-02 03:17:03.511: E/AndroidRuntime(1141): 	at android.view.View$PerformClick.run(View.java:9080)
02-02 03:17:03.511: E/AndroidRuntime(1141): 	at android.os.Handler.handleCallback(Handler.java:587)
02-02 03:17:03.511: E/AndroidRuntime(1141): 	at android.os.Handler.dispatchMessage(Handler.java:92)
02-02 03:17:03.511: E/AndroidRuntime(1141): 	at android.os.Looper.loop(Looper.java:123)
02-02 03:17:03.511: E/AndroidRuntime(1141): 	at android.app.ActivityThread.main(ActivityThread.java:3647)
02-02 03:17:03.511: E/AndroidRuntime(1141): 	at java.lang.reflect.Method.invokeNative(Native Method)
02-02 03:17:03.511: E/AndroidRuntime(1141): 	at java.lang.reflect.Method.invoke(Method.java:507)
02-02 03:17:03.511: E/AndroidRuntime(1141): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
02-02 03:17:03.511: E/AndroidRuntime(1141): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
02-02 03:17:03.511: E/AndroidRuntime(1141): 	at dalvik.system.NativeStart.main(Native Method)
 

schlingel

Gesperrter Benutzer
Offensichtlich stürzt dein Programm ab wenn du versuchst den Inhalt von Speed in ein Double umzuwandeln. Was steht denn in der Textbox drinnen? Möglicherweise kommt parseDouble mit Leerzeichen nicht zurecht, dann musst du die noch mit trim() entfernen.

Am besten wäre es, wenn du das EditText-View mit Input-Type so konfigurierst das der Benutzer möglichst wenig Blödsinn eingeben kann. Um eine Prüfung ob das ganze funktioniert, wirst du aber trotzdem nicht herumkommen.

In deinem Fall würde ja eine kleine Methode ala:

Java:
public static Double parseDouble(String val) {
     Double retVal = null;

     try {
        retVal = Double.parseDouble(val);
     } catch(NumberFormatException e) { }

     return retVal;
}
reichen. Diese Methode versucht den Wert in ein Double umzuwandeln, wenn null zurück kommt weißt du, dass das Format nicht gestimmt hat.

Und dann baust du dir noch Überprüfungen ein. Hier beispielsweise für speed:

Java:
  Double speed = parseDouble(deineTextview.getText().toString());
  if(speed == null) {
     Toast.makeText(getContext(), "Bitte eine Zahl eingeben!", Toast.LENGTH_SHORT).show();
  } else {
     // calc
  }
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Prüfen, ob App auf Gerät installiert ist Problem S10 Android & Cross-Platform Mobile Apps 11
W In App Purchase Problem? Android & Cross-Platform Mobile Apps 36
W Problem mit Android Studio Android & Cross-Platform Mobile Apps 0
T Android R.string.test+i Problem Android & Cross-Platform Mobile Apps 2
K Android to Pi | Websocket Problem Android & Cross-Platform Mobile Apps 3
N Intent und finish() Problem Android & Cross-Platform Mobile Apps 5
B Android App Programmierung Einsteiger Problem Android & Cross-Platform Mobile Apps 4
emeraldo Android Problem mit Bottomnavmenu Android & Cross-Platform Mobile Apps 10
I Das Problem mit der Tastatur... android:windowSoftInputMode="adjustPan" Android & Cross-Platform Mobile Apps 1
M Android App → Problem mit dem Speichern von einem Bitmap–Objekt. Android & Cross-Platform Mobile Apps 1
A Android Android Studio Emulator Problem Android & Cross-Platform Mobile Apps 1
S Android Studio Bluetooth App Problem Android & Cross-Platform Mobile Apps 6
J TicTacToe Problem bei kontrolle Android & Cross-Platform Mobile Apps 7
J Button array ID Problem Android & Cross-Platform Mobile Apps 2
M Problem bei Werteübergabe, MSQL verbindung Android & Cross-Platform Mobile Apps 3
S Android Problem mit Android Virtual Device erstellung. Android & Cross-Platform Mobile Apps 2
Anfänger2011 Text to Speech Problem Android & Cross-Platform Mobile Apps 1
S Android Android java onclick listener Problem Android & Cross-Platform Mobile Apps 9
A Android Problem mit ListView und OnItemClickListener.. Android & Cross-Platform Mobile Apps 10
K Problem mit arraylist und button Android & Cross-Platform Mobile Apps 16
R W-Lan Problem über Sockets Android & Cross-Platform Mobile Apps 1
P ViewPager Problem Android & Cross-Platform Mobile Apps 1
A Android Problem mit Video von Youtube abspielen Android & Cross-Platform Mobile Apps 4
A Android Problem mit Zurücktaste und ausgabe der Aktuellen Seite Android & Cross-Platform Mobile Apps 6
B Android Problem mit Soundwiedergabe Android & Cross-Platform Mobile Apps 2
T Android Android Sensor: Java Problem Android & Cross-Platform Mobile Apps 1
G Problem beim Rendern von 3D-Objekt Android & Cross-Platform Mobile Apps 0
L Android Gyroscope Sensor Problem Android & Cross-Platform Mobile Apps 2
S Android GPS Problem Android & Cross-Platform Mobile Apps 24
J Eclipse Emulator Problem Android & Cross-Platform Mobile Apps 1
J Eclipse Emulator Problem Android & Cross-Platform Mobile Apps 0
B Android Problem mit Rückgabewert Android & Cross-Platform Mobile Apps 13
L Android komisches Bitmap-Größe-Problem Android & Cross-Platform Mobile Apps 8
D Android Layout Problem Android & Cross-Platform Mobile Apps 2
R Problem mit View in ScrollView Android & Cross-Platform Mobile Apps 6
R Eclipse + AndroidSDK - Problem mit Referenzen Android & Cross-Platform Mobile Apps 6
M Problem mit setOnClickListener Android & Cross-Platform Mobile Apps 4
DaniSahne96 Problem beim Appdebuggen auf Smartphone Android & Cross-Platform Mobile Apps 3
P Android Problem beim Widget - Denkfehler ? Android & Cross-Platform Mobile Apps 2
M GCM IntentService Problem Android & Cross-Platform Mobile Apps 3
D Android Gallery Problem Android & Cross-Platform Mobile Apps 5
P Problem mit Cell id Android & Cross-Platform Mobile Apps 6
L Android Problem mit "spinner" Android & Cross-Platform Mobile Apps 10
E Android Problem mit Contact Provider Android & Cross-Platform Mobile Apps 1
H Android Problem mit ListActivity Android & Cross-Platform Mobile Apps 3
S Android Layout Problem mit fill_parent Android & Cross-Platform Mobile Apps 5
F Android ExpandableList, SimpleCursorTreeAdapter, Cursor Problem Android & Cross-Platform Mobile Apps 2
A Android Problem mit Long.getLong() bzw. Integer.getInteger() Android & Cross-Platform Mobile Apps 2
A Problem mit HTTP- Verbindung Android & Cross-Platform Mobile Apps 4
V [Java] und [JavaME] ClientServer StreamConnection . Problem beim lesen / schreiben Android & Cross-Platform Mobile Apps 2
F Eclipse JAD File erzeugen -- Problem Android & Cross-Platform Mobile Apps 10
R Ein Problem beim ausführen von folgendem Quelltext Android & Cross-Platform Mobile Apps 11
M Problem mit dem Auslesen von System Properties Android & Cross-Platform Mobile Apps 7
P wtk problem Android & Cross-Platform Mobile Apps 3
G Math exp() Problem Android & Cross-Platform Mobile Apps 4
G S40 Problem Android & Cross-Platform Mobile Apps 8
A Problem beim Subtrahieren eines Double von einem Double Android & Cross-Platform Mobile Apps 5
C Problem Device/Emulator wird nicht erkannt Android & Cross-Platform Mobile Apps 3
S Image Problem Android & Cross-Platform Mobile Apps 11
M Problem mit den Softkeys Android & Cross-Platform Mobile Apps 4
G J2ME jar-problem Android & Cross-Platform Mobile Apps 10
S Komisches Problem Android & Cross-Platform Mobile Apps 3
F Problem beim Erstellen der Jar File Android & Cross-Platform Mobile Apps 4
A Problem: Canvas-Grösse Motorola RAZR v3r Android & Cross-Platform Mobile Apps 8
S Problem mit Einbindung einer externer Bibliothek Android & Cross-Platform Mobile Apps 2
G Random - Problem Android & Cross-Platform Mobile Apps 5
E problem mit den resourcen Android & Cross-Platform Mobile Apps 2
O Problem mit Datagramconnection Android & Cross-Platform Mobile Apps 2
P Problem mit der Uhrzeit Android & Cross-Platform Mobile Apps 2
S Problem auf dem Handy Android & Cross-Platform Mobile Apps 3

Ähnliche Java Themen

Neue Themen


Oben