【发布时间】:2021-09-04 14:33:52
【问题描述】:
是否可以在按下复选框时自动进行算术计算?我想根据复选框顶部价格的选择添加总 harga(总价格)变化,并将它们与基本价格(产品价格)一起添加。
例如: 选中 CB Extra Ayam 和 CB Kepala 将增加 3000 + 4000 然后加上基本产品价格10000 所以总价是17000 当我不勾选CB Extra Ayam和CB Kepala等时,总价将回到10000
这是我的代码
if (Code.toUpperCase().matches((inMieAyam.toUpperCase()))){
//set text topping
CBTopping1.setText("Extra Ayam");
CBTopping2.setText("Extra Tetelan Sapi");
CBTopping3.setText("Cakar (2 pcs)");
CBTopping4.setText("Kepala");
CBTopping5.setText("Bakso Sapi");
CBTopping6.setText("Telur Mata Sapi");
CBTopping7.setText("Balungan Rica Ayam");
CBTopping8.setText("Extra Sawi");
CBTopping9.setText("Extra Acar");
//hide remaining topping CB
CBTopping10.setVisibility(View.GONE);
//set price to variable
Price1 = 3000;
Price2 = 7000;
Price3 = 4000;
Price4 = 4000;
Price5 = 3000;
Price6 = 4000;
Price7 = 4000;
Price8 = 1000;
Price9 = 1000;
Price10 = 0;
//set price topping
TxtvToppingPrice1.setText("Rp."+Price1);
TxtvToppingPrice2.setText("Rp."+Price2);
TxtvToppingPrice3.setText("Rp."+Price3);
TxtvToppingPrice4.setText("Rp."+Price4);
TxtvToppingPrice5.setText("Rp."+Price5);
TxtvToppingPrice6.setText("Rp."+Price6);
TxtvToppingPrice7.setText("Rp."+Price7);
TxtvToppingPrice8.setText("Rp."+Price8);
TxtvToppingPrice9.setText("Rp."+Price9);
//hide remaining topping price Txtv
TxtvToppingPrice10.setVisibility(View.GONE);
FinalPrice1 = 0;
FinalPrice2 = 0;
FinalPrice3 = 0;
FinalPrice4 = 0;
FinalPrice5 = 0;
FinalPrice6 = 0;
FinalPrice7 = 0;
FinalPrice8 = 0;
FinalPrice9 = 0;
FinalPrice10 = 0;
CBTopping1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked){
FinalPrice1 = Price1;
}
else {
FinalPrice1 = 0;
}
}
});
CBTopping2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked){
FinalPrice2 = Price2;
}
else {
FinalPrice2 = 0;
}
}
});
CBTopping3.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked){
FinalPrice3 = Price3;
}
else {
FinalPrice3 = 0;
}
}
});
CBTopping4.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked){
FinalPrice4 = Price4;
}
else {
FinalPrice4 = 0;
}
}
});
CBTopping5.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked){
FinalPrice5 = Price5;
}
else {
FinalPrice5 = 0;
}
}
});
CBTopping6.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked){
FinalPrice6 = Price6;
}
else {
FinalPrice6 = 0;
}
}
});
CBTopping7.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked){
FinalPrice7 = Price7;
}
else {
FinalPrice7 = 0;
}
}
});
CBTopping8.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked){
FinalPrice8 = Price8;
}
else {
FinalPrice8 = 0;
}
}
});
CBTopping9.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked){
FinalPrice9 = Price9;
}
else {
FinalPrice9 = 0;
}
}
});
FoodPrice1 = Integer.parseInt(Price);
TotalFinalPrice = FoodPrice1 + FinalPrice1 + FinalPrice2 + FinalPrice3 +
FinalPrice4 + FinalPrice5 + FinalPrice6 +
FinalPrice7 + FinalPrice8 + FinalPrice9 ;
TxtvTotalHarga.setText(Integer.toString(TotalFinalPrice));
}
编辑: 结果变量在复选框监听器中没有改变
默认 FinalPrice1 是 0,当我从复选框监听器更改它时,它不会更改为 Price1 值,它仍然是 0。我试图通过向它写入值来直接更改它 FinalPrice1 = 10000 也没有运气,它只是说0.
如果我删除了
FinalPrice1 = 0;
FinalPrice2 = 0;
FinalPrice3 = 0;
FinalPrice4 = 0;
FinalPrice5 = 0;
FinalPrice6 = 0;
FinalPrice7 = 0;
FinalPrice8 = 0;
FinalPrice9 = 0;
FinalPrice10 = 0;
应该是nullpointer 错误
我不知道怎么了
我不能粘贴整个代码,因为帖子不允许,它太长了 lmao
TotalFinalPrice 的变量只是没有改变或者可能没有计算
【问题讨论】:
标签: java android android-studio checkbox