在“弹出”窗口中仅显示一个textview

时间:2019-03-26 04:37:12

标签: android textview

应用在第一个屏幕上接受用户输入,并且在点击提交时,仅显示我指定的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

1 个答案:

答案 0 :(得分:0)

据我所看到的代码,您传递了错误的密钥来获取dbalance金额。在第一个代码段中,您传递了passData.putExtra("balanceInput", dBalance);,并且您收集了不存在的密钥的值dCurrentBal = passData.getDoubleExtra("balance", dBalance);,请注意您使用的密钥。

及其初始化在创建活动时使用的所有小部件的良好做法。将所有findViewById移至onCreate方法,然后重试。让我知道是否可行。

相关问题