App rechnet nur EINmal

  • 6 Antworten
  • Letztes Antwortdatum
F

FlyingAndroid

Neues Mitglied
0
Hallo,

ich habe ein kleine App gemacht, die helfen soll etwas auszurechnen.
Über editText-Elemente hole ich die Werte und ein Button führt die Rechnung aus.

Soweit sogut: Beim ersten Mal klappt das auch, danach Stürzt die App ab.

Besten Dank für Hilfe!
 
A

Anzeige

  • Gerade eben
  • Neu
Code und Logtrace.
 
import android.app.Activity;
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 static java.lang.Math.*;

public class Kamm extends Activity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_kamm);
Button btnKRKrechnen = (Button) findViewById(R.id.btnKRKrechnen);
btnKRKrechnen.setOnClickListener(this);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.kamm, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onClick(View v) {
double vKRKk=0;
double vKRKq=0;
double vKRKl=0;
EditText txtKRKk = (EditText)findViewById(R.id.txtKRKk);
EditText txtKRKq = (EditText)findViewById(R.id.txtKRKq);
EditText txtKRKl = (EditText)findViewById(R.id.txtKRKl);
if(txtKRKk.getText().length() > 0)
{
vKRKk = Double.parseDouble(txtKRKk.getText().toString());
}else{
vKRKk =0;
}
if(txtKRKq.getText().length() > 0)
{
vKRKq = Double.parseDouble(txtKRKq.getText().toString());
}else{
vKRKq =0;
}
try {
vKRKl=sqrt(vKRKk*vKRKk-vKRKq*vKRKq);
txtKRKk.setText(String.format("%.1f",vKRKk));
txtKRKq.setText(String.format("%.1f",vKRKq));
txtKRKl.setText(String.format("%.1f",vKRKl));
} catch (Exception e){
}
}
}
 
Könntest du den Code vllt auch als Code formatieren? Dann könnte man den besser lesen :)

Und die Fehlermeldung aus der Logcat wäre auch ganz hilfreich


EDIT:
Damit du auch einen Fehler angezeigt bekommst solltest du das try catch am ende der onclick methode entfernen.
Außerdem sind deine beiden else in der onclick methode unnötig, weil die Variablen vorher schon auf 0 gesetzt werden.
 
Zuletzt bearbeitet:
Das Problem ist Double.parseDouble()

Deine Textfelder beinhalten z.B. eine "4,0" aber parseDouble funktioniert nur mit 4.0.

Wenn du da ein Komma statt einem Punkt drin hast funktioniert das ganze nicht.
DU solltest die String.format() Methode wählen, der du eine Locale mitgeben musst.
String | Android Developers
 
So geht´s...
Danke !
 

Ähnliche Themen

E
Antworten
11
Aufrufe
1.146
evgkop
E
nowo84
Antworten
2
Aufrufe
428
nowo84
nowo84
F
Antworten
9
Aufrufe
520
swa00
swa00
G
Antworten
0
Aufrufe
267
Gerdchen07
G
Zurück
Oben Unten