2016-04-19 14 views
0

Ich versuche eine einfache ballistische App zu erstellen, die den Kugelfall und die Zeit zum Ziel berechnet. Ich habe alles dort, wo ich es brauche, aber wenn ich es teste und auf meine Ergebnisse warte, scheint es nicht die Berechnungen zu machen, die ich dort habe. Irgendwelche Vorschläge für mich?Warum werden meine Berechnungen in meiner App nicht angezeigt?

package com.example.koryhershock.testapp; 

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

public class MainActivity extends Activity 
{ 
@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.content_main); 

    Button btn = (Button)findViewById(R.id.button1); 
    final EditText et1 = (EditText)findViewById(R.id.muzzleVelocity); 
    final EditText et2 = (EditText)findViewById(R.id.targetRange); 
    final TextView time = (TextView)findViewById(R.id.textView1); 
    final TextView bulletdrop = (TextView)findViewById(R.id.textView2); 
    btn.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      int x = new Integer(et1.getText().toString()); 
      int y = new Integer(et2.getText().toString()); 
      double timetotarget = x/y; 
      double grav = 4.9; 
      double timesquared = timetotarget * timetotarget; 
      double drop = grav * timesquared; 
      time.setText("Time to Target: " + timetotarget + " seconds"); 
      bulletdrop.setText("Bullet Drop: " + drop + " meters"); 
     } 
    }); 
} 
} 
+0

Könnten Sie eine Log-Anweisung in die onClick-Methode einfügen, um sicherzustellen, dass sie aufgerufen wird? –

+0

Es wird aufgerufen, ich setze die Werte von time und bulletdrop auf einen anderen Text um zu starten, wenn ich drücke, rechne den Text um auf "Time to Target:" usw, aber es wird nicht berechnet. Alles was es tut, ist 0 für alle Werte. –

+2

Machen Sie 'x' und' y' 'double' statt' int'. –

Antwort

0

Ok, kann hier ein Problem sein: Doppelter Stundenplan = x/y; weil x und y ist eine ganze Zahl. Wenn zum Beispiel x 150 und y gleich 100 ist, ist das Ergebnis von calculatian gleich 1. Versuchen Sie, die nächste Berechnung zu verwenden: double tazetarget = (double) x/(double) y;

Verwandte Themen