首页 > 解决方案 > 选中单选按钮或复选框时,计算价格

问题描述

我正在创建一个允许用户自己选择的应用程序。

我可以知道如何计算吗?单击单选按钮或复选框时,似乎不包括价格。请帮我。是逻辑错误还是语法错误?

radioGroup1=(RadioGroup)findViewById(R.id.radioGroup_1);

radioGroup1.setOnCheckedChangeListener(
    new RadioGroup.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) {
            String tempSize="Choose your size";
            double SPrice=0;
            switch (radioGroup1.getCheckedRadioButtonId()){
                case R.id.radioButton_munch:
                    tempSize="Personal Pan";
                    SPrice=5;
                    break;
                case R.id.radioButton_hungry:
                    tempSize="Regular Pan";
                    SPrice=9;
                    break;
                case R.id.radioButton_horse:
                    tempSize="Large Pan";
                    SPrice=12;
                    break;
            }
            Size.setText(tempSize);
            SizePrice = SPrice;
        }
    });

checkBoxListener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Topping = (TextView)findViewById(R.id.textView_TopAns);
            Topping.setText(" ");

            if(ChkCheese.isChecked()){
                Topping.setText(Topping.getText().toString() + ChkCheese.getText().toString());
                ToppingPrice=2.5;
            }
            if(ChkMushroom.isChecked()){
                Topping.setText(Topping.getText().toString() + "," + ChkMushroom.getText().toString());
                ToppingPrice=1;
            }

        };
        ChkCheese.setOnClickListener(checkBoxListener);
        ChkMushroom.setOnClickListener(checkBoxListener);

        TotalPrice = SizePrice + CrustPrice + ToppingPrice;
        Price.setText("$" + TotalPrice );
    }
}

标签: android-studiocheckboxradio-button

解决方案


把这段代码:

TotalPrice = SizePrice + CrustPrice + ToppingPrice;
Price.setText("$" + TotalPrice );

方法内部onClick()

    @Override
    public void onClick(View v) {
        Topping = (TextView)findViewById(R.id.textView_TopAns);
        Topping.setText(" ");

        if(ChkCheese.isChecked()){
            Topping.setText(Topping.getText().toString() + ChkCheese.getText().toString());
            ToppingPrice=2.5;
        }
        if(ChkMushroom.isChecked()){
            Topping.setText(Topping.getText().toString() + "," + ChkMushroom.getText().toString());
            ToppingPrice=1;
        }
        TotalPrice = SizePrice + CrustPrice + ToppingPrice;
        Price.setText("$" + TotalPrice );   

    };

所以它在每次单击复选框时执行。


推荐阅读