2016-05-13 2 views
0

ich ein Doppel aus dieser Klasse in einer anderen Klasse anzuzeigen versuchen ..Doppel in einem anderen acitivity angezeigten

hier ist also mein Code:

public class Rechner erweitert AppCompatActivity {

Button next; 

TextView pPrice; 
TextView renovations; 
TextView misc2; 

TextView util; 
TextView rep; 
TextView mortage; 
TextView misc1; 

TextView rent; 

public double getStartingCostsResult() { 
    return startingCostsResult; 
} 

double startingCostsResult; 
double monthlyMinus; 
double monthlyPlus; 

double monthlyROI; 
double yearlyROI; 

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

    // Setting these textviews to those in the xml. 

    pPrice = (TextView) findViewById(R.id.pPrice); 
    renovations = (TextView) findViewById(R.id.renovations); 
    misc2 = (TextView) findViewById(R.id.misc2); 

    util = (TextView) findViewById(R.id.util); 
    rep = (TextView) findViewById(R.id.rep); 
    mortage = (TextView) findViewById(R.id.mortage); 
    misc1 = (TextView) findViewById(R.id.misc); 

    rent = (TextView) findViewById(R.id.rent); 


    next = (Button) findViewById(R.id.next); 
     next.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent expense = new Intent(getApplicationContext(), Results.class); 


       if ((pPrice.getText().length() > 0) && (renovations.getText().length() > 0) && (misc2.getText().length() > 0)) { 

        double price = Double.parseDouble(pPrice.getText().toString()); 
        // double costs = Double.parseDouble(cCosts.getText().toString()); 
        double reno = Double.parseDouble(renovations.getText().toString()); 
        double misc = Double.parseDouble(misc2.getText().toString()); 


        startingCostsResult = price + reno + misc; 

        if((util.getText().length()>0) && (rep.getText().length()>0) && (mortage.getText().length()>0) && (misc1.getText().length()>0)){ 

         double utilities = Double.parseDouble(util.getText().toString()); 
         double repairs = Double.parseDouble(rep.getText().toString()); 
         double mort = Double.parseDouble(mortage.getText().toString()); 
         double miscsell = Double.parseDouble(misc1.getText().toString()); 

         monthlyMinus = utilities + repairs + mort + miscsell; 

         if (rent.getText().length()>0){ 
          double monthlyRent = Double.parseDouble(rent.getText().toString()); 

          monthlyPlus = monthlyRent; 

          monthlyROI = monthlyPlus - monthlyMinus; 
          yearlyROI = monthlyROI *12; 

          startActivity(expense); 
         }else{ 
          Toast.makeText(Calculator.this, "Please enter '0' in all boxes that don't apply.", Toast.LENGTH_SHORT).show(); 


         } 
        }else{ 
         Toast.makeText(Calculator.this, "Please enter '0' in all boxes that don't apply.", Toast.LENGTH_SHORT).show(); 
        } 

       } else { 
        Toast.makeText(Calculator.this, "Please enter '0' in all boxes that don't apply.", Toast.LENGTH_SHORT).show(); 
       } 


      } 

     }); 









} 

}

Also ich versuche, das yearROI Doppel in einer anderen Klasse anzuzeigen.

Ich habe dies versucht:

Calculator calc = new Calculator(); 
otherClass.setText((int) calc.yearlyROI); 

Aber meine App stürzt ab, wenn ich als nächstes klicken.

+1

benötigen weitere Informationen. Absturz wie? Wird eine Ausnahme angezeigt? – Thomas

+0

Veröffentlichen Sie Ihren Logcat nach dem Absturz. –

Antwort

1

sollten Sie ein Extra in die Ausgabe Absicht wie folgt setzen.

expense.putExtra("yearlyRoi",yearlyRoi); 

dann in der nexet-Aktivität können Sie es so erhalten.

Intent recievedIntent = this.getIntent(); 
double yearlyRoi = recievedIntent.getDoubleExtra("yearlyRoi", defaultValue); 

Standardwert kann 0,0 oder alles, was Sie wollen.

wie für den Absturz ich denke, es ist ein anderes Problem, müssen Sie uns Fehlerprotokoll Ihrer App geben.

+0

Sollte dies: Intent recievedIntent = this.getIntent(); double annualRoi = recievedIntent.getDoubleExtra ("annualRoi", defaultValue); Gehen Sie in die Oncreate-Methode? –

+0

ja in der Klasse OnCreate-Methode Ergebnisse tun dies. –

+0

Danke, aber wie setze ich das Double in der neuen Klasse auf eine Textansicht? –

1

Wenn Sie auf Variablen von einer anderen Aktivität zugreifen möchten, müssen Sie sie zu Ihrer Absicht hinzufügen.

In Ihrem Fall:

expense.putExtra("yearlyROI", yearlyROI); 
startActivity(expense); 

Dann in Ihrem neuen Aktivität:

double yearlyROI = getIntent().getDoubleExtra("yearlyROI"); 

Hoffe, es hilft!