Java 在另一个活动中显示双精度

Java 在另一个活动中显示双精度,java,android,Java,Android,我正试图在另一个类中显示此类的double 这是我的代码: 公共类计算器扩展AppCompatActivity{ Button next; TextView pPrice; TextView renovations; TextView misc2; TextView util; TextView rep; TextView mortage; TextView misc1; TextView rent; public double getStartingCostsResult() {

我正试图在另一个类中显示此类的double

这是我的代码:

公共类计算器扩展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);

但是当我单击“下一步”时,我的应用程序崩溃了。

你应该像这样在费用中添加一个额外的意图

expense.putExtra("yearlyRoi",yearlyRoi);
Intent recievedIntent = this.getIntent();
double yearlyRoi = recievedIntent.getDoubleExtra("yearlyRoi", defaultValue);
然后在nexet活动中,你可以得到这样的结果

expense.putExtra("yearlyRoi",yearlyRoi);
Intent recievedIntent = this.getIntent();
double yearlyRoi = recievedIntent.getDoubleExtra("yearlyRoi", defaultValue);
默认值可以是0.0或任何您想要的值


至于崩溃,我认为这是另一个问题,你需要给我们你的应用程序的错误日志。

你应该像这样在费用中增加一个额外的意图

expense.putExtra("yearlyRoi",yearlyRoi);
Intent recievedIntent = this.getIntent();
double yearlyRoi = recievedIntent.getDoubleExtra("yearlyRoi", defaultValue);
然后在nexet活动中,你可以得到这样的结果

expense.putExtra("yearlyRoi",yearlyRoi);
Intent recievedIntent = this.getIntent();
double yearlyRoi = recievedIntent.getDoubleExtra("yearlyRoi", defaultValue);
默认值可以是0.0或任何您想要的值


至于崩溃,我认为这是另一个问题,你需要给我们你的应用程序的错误日志。

如果你想从不同的活动中访问变量,你需要将它们添加到你的意图中

就你而言:

expense.putExtra("yearlyROI", yearlyROI);
startActivity(expense);
然后在您的新活动中:

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

希望有帮助

如果你想从不同的活动中访问变量,你需要将它们添加到你的意图中

就你而言:

expense.putExtra("yearlyROI", yearlyROI);
startActivity(expense);
然后在您的新活动中:

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

希望有帮助

需要更多信息。怎么撞车?显示任何异常?在崩溃后发布日志。需要更多信息。怎么撞车?显示任何异常?在崩溃后发布您的日志猫。应为:Intent receivedintent=this.getIntent();double yearlyRoi=ReceivedIntent.getDoubleExtra(“yearlyRoi”,默认值);进入oncreate方法?谢谢,但是如何将新类中的double设置为文本视图呢;应该是:Intent receivedintent=this.getIntent();double yearlyRoi=ReceivedIntent.getDoubleExtra(“yearlyRoi”,默认值);进入oncreate方法?谢谢,但是如何将新类中的double设置为文本视图呢;