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!
 
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

G
Antworten
0
Aufrufe
132
Gerdchen07
G
G
Antworten
1
Aufrufe
384
Gerdchen07
G
G
Antworten
13
Aufrufe
596
Gerdchen07
G
L
Antworten
2
Aufrufe
554
Lexub
L
migi01
Antworten
26
Aufrufe
1.989
migi01
migi01
Zurück
Oben Unten