2016-05-13 5 views
0

актив- ности я пытаюсь отобразить двойной из этого класса в другом классе ..Отображение Double в другом

Так вот мой код:

общественного класса Calculator расширяет 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(); 
       } 


      } 

     }); 









} 

}

Так что я пытаюсь отобразить yearlyROI double в другом классе.

Я попытался это:

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

Но мое приложение падает, когда я щелкаю дальше.

+1

требуется дополнительная информация. Крушение как? Любое исключение отображается? – Thomas

+0

Отправьте свой Logcat после сбоя. –

ответ

1

вы должны положить дополнительно в счет задуматься как это сделать.

expense.putExtra("yearlyRoi",yearlyRoi); 

, то в деятельности nexet вы можете получить его следующим образом.

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

Значение по умолчанию может быть 0.0 или все, что вы хотите.

что касается аварии, я думаю, что это еще одна проблема, вам нужно предоставить нам журнал ошибок вашего приложения.

+0

Если это: Намерение полученоIntent = this.getIntent(); double yearlyRoi = полученоIntent.getDoubleExtra ("yearlyRoi", defaultValue); Заходите в метод oncreate? –

+0

Да в классе результатов onCreate метод делает это. –

+0

Спасибо, но как установить двойной в новом классе текстовый вид? –

1

Если вы хотите получить доступ к переменным из другой деятельности, вам необходимо добавить их в свои намерения.

В вашем случае:

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

Тогда в новой деятельности:

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

Надеется, что это помогает!

Смежные вопросы