2 回答

TA貢獻1812條經驗 獲得超5個贊
這是因為在向意圖添加擴展數據時您有不同的密鑰。您在方法中使用以下"Loan.loanAmount"鍵calculatePayment:
intent.putExtra("Loan.loanAmount", Double.valueOf(amount.toString()));
但你期望"loanAmount"在paymentViewActivity課堂上:
public class paymentViewActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
...
double amount = intent.getDoubleExtra("loanAmount", loanAmount);
}
請注意該Intent.putExtra(String, Value)參數使用鍵值格式。字符串是特定值的鍵標識符。
因此,為您的 putExtra 使用相同的密鑰。更安全的方法是在相關活動中使用常量字符串作為鍵。例如,LOAN_AMOUNT_KEY為您的貸款金額值使用常量字符串:
public class paymentViewActivity extends AppCompatActivity {
public static final String LOAN_AMOUNT_KEY = "loanAmountKey";
@Override
protected void onCreate(Bundle savedInstanceState) {
...
// use the key to find the value
// you won't use the incorrect key because
// the key is tightly coupled to the activity
double amount = intent.getDoubleExtra(LOAN_AMOUNT_KEY, loanAmount);
}
}
然后,在您的calculatePayment方法中,在保存值時使用密鑰:
public void calculatePayment(View view) {
Intent intent = new Intent(this, paymentViewActivity.class);
...
double amount = Double.valueOf(amount.toString());
intent.putExtra(paymentViewActivity.LOAN_AMOUNT_KEY, amount);
...
}
筆記:
為您的活動使用正確的 java 命名約定類名。例如,
PaymentViewActivity
改為使用paymentViewActivity
避免
public static
用于您的模型成員類。你最好使用getter/setter。

TA貢獻1842條經驗 獲得超13個贊
intent.putExtra(String.valueOf(Loan.interestRate), interest); --> wrong
intent.putExtra(String.valueOf(Loan.loanDuration), radio_b.getText().toString());
您只需要添加字符串名稱,然后您才能從附加組件中獲取它。
intent.putExtra("interest", interest);
intent.putExtra("loanduration", radio_b.getText().toString());
添加回答
舉報