从另一个活动 Android 工作室导入数据



这是我的主要类。我从用户输入中收到双倍的地方。

public void onPayClick(View view){
    Intent payIntent = new Intent(this, payActivity.class);
    final EditText amountInput = (EditText) findViewById(R.id.amountInput);
    final EditText yearInput = (EditText) findViewById(R.id.yearInput);
    final EditText interestInput = (EditText) findViewById(R.id.interestInput);
    double amountDouble = Double.parseDouble(amountInput.getText().toString());
    double yearDouble = Double.parseDouble(yearInput.getText().toString());
    double interestDouble = Double.parseDouble(interestInput.getText().toString());
    payIntent.putExtra("amountDouble", amountDouble);
    payIntent.putExtra("yearDouble", yearDouble);
    payIntent.putExtra("interestDouble", interestDouble);
    startActivity(payIntent);
}

这是我的第二个活动,在这里我想计算贷款,但我只是想打印金额翻倍看看它是否有效,但它没有......

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

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_pay);
    Bundle payData = getIntent().getExtras();
    if(payData == null){
        printPay.setText("Villa, þú verður að filla upp í alla reiti.");
        return;
    }
    String amountDouble = payData.getString("amountDouble");
    String yearDouble = payData.getString("yearDouble");
    String interestDouble = payData.getString("interestDouble");
    String sum1 = amountDouble;
    printPay.setText(sum1);
}

每次我点击payButton时,应用程序都会崩溃。

从第 1 Activity开始,您将直接将这些值添加到intent中,因此您必须从intent而不是从bundle获取这些数据。除此之外,您还在类的顶部声明该TextView,因此它将在 setContentView(R.layout.activity_pay); 之后onCreate(...)内定义它。在第二Activity像这样改变

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_pay);
    TextView printPay = (TextView) findViewById(R.id.printPay);
    String amountDouble = String.valueOf(getIntent().getDoubleExtra("amountDouble", 0.0));
    String yearDouble = String.valueOf(getIntent().getDoubleExtra("yearDouble", 0.0);
    String interestDouble = String.valueOf(getIntent().getDoubleExtra("interestDouble", 0.0);
    String sum1 = amountDouble;
    printPay.setText(sum1);
}

getDoubleExtra(java.lang.String, double)的更多信息

最新更新