gpt4 book ai didi

java - IF 语句不适用于 TextWatcher

转载 作者:太空宇宙 更新时间:2023-11-04 12:50:12 25 4
gpt4 key购买 nike

我的代码看起来很简单,但我不知道问题出在哪里。如果我编写这样的代码:

tvResult.setText(sum+ "RUB");

它显示了正确的数字。但如果我尝试添加这样的 IF 语句:

if(sum>=114000) {
tvResult.setText(sum + " RUB");
}

总和等于 1000000,它显示奇怪的数字:1111111.0。需要您的建议 =) 提前致谢

这是 XML 代码:

<TextView
android:layout_width="wrap_content"
android:layout_height="40dp"
android:id="@+id/tvCash"
android:layout_below="@id/tvCalculate"
android:hint="@string/cash_money"
android:background="@drawable/zakat_red"
android:layout_marginTop="20dp"/>

<EditText
android:layout_width="130dp"
android:layout_height="40dp"
android:id="@+id/etCash"
android:inputType="numberDecimal"
android:layout_above="@+id/tvBank"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:hint="@string/hint_zakat"
android:gravity="end"
android:imeOptions="actionDone"/>

和 Java 代码:

TextWatcher twCash=new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {

}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {

}

@Override
public void afterTextChanged(Editable s) {
tvCash.setBackgroundResource(R.drawable.zakat_green);
sum+=Float.valueOf(etCash.getText().toString());
if(sum>=114000) {
tvResult.setText(sum + " RUB");
}
}
};

最佳答案

你的逻辑有问题。当您使用 TextWatcher 时,即使您输入“.”,也要计算 editText 中输入的所有数字的总和。在任何数字之后,afterTextChanged() 将被调用,然后它将将该数字添加到聚合总和中。假设您连续输入以下字符:2、3、。 , 4 , 7然后你会得到总和 = 94.87我想这不是计算输入数字总和的正确方法。您必须纠正您的逻辑才能获得所需的输出。

关于java - IF 语句不适用于 TextWatcher,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35902505/

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