应用在第一个屏幕上接受用户输入,并且在点击提交时,仅显示我指定的TextView
的“信用额度”和格式,但不显示金额。我为此删除了一些变量,但是它可以编译并完美运行,只是不显示计算。
试图使某些变量全局化,并得出结论,这一定要解决一些问题吗? TextViews
采用格式化,这向我证明了输出代码还可以,也许正在共享数据?
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
intRateInput = findViewById(R.id.intRateInput);
limitInput = findViewById(R.id.limitInput);
balanceInput = findViewById(R.id.balanceInput);
Button submitButton = findViewById(R.id.submitButton);
submitButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent passData = new Intent(MainActivity.this, Popup.class);
dLimit = valueOf(limitInput.getText().toString()); //TAKE USER INPUT FROM MAIN SCREEN
passData.putExtra("limitInput", dLimit); //PASS INPUT TO POP-UP
dBalance = valueOf(balanceInput.getText().toString()); //TAKE USER INPUT FROM MAIN SCREEN
passData.putExtra("balanceInput", dBalance); //PASS INPUT TO POP-UP
dIntRate = valueOf(intRateInput.getText().toString()); //TAKE USER INPUT FROM MAIN SCREEN
passData.putExtra("intRateInput", dIntRate); //PASS INPUT TO POP-UP
startActivity(passData);}
这是PopupWindow
显示用户输入的第二个代码。它接收通过Intent
传递的信息,我希望我做对了。该应用程序可以编译并正确运行,但仅显示“原始余额”,而不显示TextViews
的其余部分。
有人可以看一下代码来帮助我找出我在哪里不能正确锻炼吗?
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_popup);
Intent passData = getIntent();
dCurrentLimit = passData.getDoubleExtra("limitInput", dLimit);
dCurrentBal = passData.getDoubleExtra("balance", dBalance);
dCurrentIntRate = passData.getDoubleExtra("intRateInput", dIntRate);
Calculate();
}
public void Calculate(){
int iDays = 30;
TextView minMonPay = findViewById(R.id.minMonPay);
TextView textClose = findViewById(R.id.textclose);
TextView cashFlowRec = findViewById(R.id.cashFlowRec);
TextView origMonPayCal = findViewById(R.id.origMonPayCal);
TextView origBalIn = findViewById(R.id.origBalIn);
DecimalFormat currency = new DecimalFormat ("$#,###.00");
currency.setRoundingMode(RoundingMode.UP);
//double monthly = (dBalance * dActRate) / iMonth;
//double result = (dBalance * dActRate) / iMonth / iDays;
dMinDailyCharge = dCurrentBal * dInterest / iMonth;
dInterest = dCurrentIntRate / dPercent;
dOrigMonCharge = dCurrentBal * dInterest / iMonth;
minMonPay.setText(currency.format(dMinMonthlyCharge));
origMonPayCal.setText(currency.format(dBalance)); //SHOW ORIGINAL MONTHLY INTEREST CHARGE
origBalIn.setText(currency.format(dCurrentLimit)); //SHOW ORIGINAL BALANCE
答案 0 :(得分:0)
据我所看到的代码,您传递了错误的密钥来获取dbalance金额。在第一个代码段中,您传递了passData.putExtra("balanceInput", dBalance);
,并且您收集了不存在的密钥的值dCurrentBal = passData.getDoubleExtra("balance", dBalance);
,请注意您使用的密钥。
及其初始化在创建活动时使用的所有小部件的良好做法。将所有findViewById
移至onCreate方法,然后重试。让我知道是否可行。