gpt4 book ai didi

具有固定小数的Android Money Input

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:40:44 26 4
gpt4 key购买 nike

如何创建一个仅以货币格式格式化输入的 edittext 条目?当用户输入 5 时,我希望输入看起来像“$0.05”,然后当他们输入 3 时,输入现在应该像“$0.53”,最后他们输入 6,输入应该像“$5.36”。

最佳答案

ninjasense 的完整解决方案基本上可以工作,但存在一些问题:

  1. 每次在“onTextChanged”处理程序中更改字段的数据时,光标位置都会重置为字段上的索引 0,这在输入货币值时会有点烦人。
  2. 它使用 float 来格式化货币值,这可能适得其反。

对于第一个问题,我还没有解决方案,对于第二个问题,这样的代码有效:

    @Override
public void onTextChanged(CharSequence s, int start,
int before, int count) {
if(!s.toString().matches("^\\$(\\d{1,3}(\\,\\d{3})*|(\\d+))(\\.\\d{2})?$"))
{
String userInput= ""+s.toString().replaceAll("[^\\d]", "");
StringBuilder cashAmountBuilder = new StringBuilder(userInput);

while (cashAmountBuilder.length() > 3 && cashAmountBuilder.charAt(0) == '0') {
cashAmountBuilder.deleteCharAt(0);
}
while (cashAmountBuilder.length() < 3) {
cashAmountBuilder.insert(0, '0');
}
cashAmountBuilder.insert(cashAmountBuilder.length()-2, '.');
cashAmountBuilder.insert(0, '$');

cashAmountEdit.setText(cashAmountBuilder.toString());
}

}

关于具有固定小数的Android Money Input,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3013795/

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