gpt4 book ai didi

java - Android studio 中的复选框

转载 作者:行者123 更新时间:2023-12-01 10:19:01 25 4
gpt4 key购买 nike

enter image description here

我有这段代码,在我的程序中我使用了复选框。如果选中该复选框,则必须执行 if 语句中的语句,但即使未选中该复选框,我的程序也会执行所有“if 语句”。

public void onClickMakeTransactionButton(){

chkAirtime = (CheckBox) findViewById(R.id.chkAirtime);
chkElectricity = (CheckBox) findViewById(R.id.chkElectricity);
chkWater = (CheckBox) findViewById(R.id.chkWater);
chkTransfer = (CheckBox) findViewById(R.id.chkTransfers);
chkWithdrawal = (CheckBox) findViewById(R.id.chkWithdrawal);
chkPayDstv = (CheckBox) findViewById(R.id.chkPayDstv);

final TextView savingsBalance = (TextView) findViewById(R.id.txtSavingsBalance);
savingsBalance.setText("Your Balance is: " + balance);

btnMakeTransaction = (Button) findViewById(R.id.btnMakeTransaction);

btnMakeTransaction.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

StringBuffer result = new StringBuffer();
//This are the if statements for my check boxes. My program executes the if statements even if the check boxes are not checked. what could be the problem. please help
if (result == result.append("Airtime: ").append(chkAirtime.isChecked())) {
balance = balance - 50;

}

if (result == result.append("Electricity: ").append(chkElectricity.isChecked())) {
balance = balance - 150;
}

if (result == result.append("Water: ").append(chkWater.isChecked())) {
balance = balance - 150;
}

if (result == result.append("Transfers: ").append(chkTransfer.isChecked())) {

balance = balance - 500;
}

if (result == result.append("Withdrawal: ").append(chkWithdrawal.isChecked())) {

balance = balance - 200;
}

if (result == result.append("Pay Dstv: ").append(chkPayDstv.isChecked())) {

balance = balance - 200;

} else {
Toast.makeText(SavingsAccountTransactions.this, "Nothing been Selected ", Toast.LENGTH_LONG).show();
}


savingsBalance.setText("Your Balance is: " + balance);
Toast.makeText(SavingsAccountTransactions.this, result.toString(), Toast.LENGTH_SHORT).show();
}
});

}

最佳答案

显然 if 条件返回总是 true。
(示例:result == result.append("Airtime: ").append(chkAirtime.isChecked()))
为什么:您在 if 条件中使用相同的对象。

通过查看您的代码,我认为您需要这样检查

if (chkAirtime.isChecked()) { //checking CheckBox is checked or not. 
balance = balance - 50;
result.append("Airtime: "+balance+" ");//appending data to result
}

对所有其他 if 条件执行相同的操作。

重要:如果要比较两个字符串,请始终使用equals。就像s1.equals(s2); visit this : SO - Java String.equals versus ==

关于java - Android studio 中的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35743665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com