gpt4 book ai didi

Android:给EditText字段添加小数点,并使其随输入移动

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:17:30 25 4
gpt4 key购买 nike

在我的应用中,用户可以在文本字段中输入美元金额。问题是,我需要输入在他们输入数字时适应最终数字,而不是实际输入小数点。最好的解释方法是举个例子:

假设用户从包含以下内容的 EditText 字段开始:

.

用户想要在字段中输入 $12.53(即数字 1、2、5、3)。然后他/她从输入 1 开始,该字段应如下所示:

.1

然后:

.12

下一步:

1.25

最后:

12.53

因此您可能会注意到,小数点会在输入数字时相应地放置自己。在输入数字时是否可以这样做?谢谢。

最佳答案

是的,这是很有可能的,即使您不必分别管理 "$"decimal

下面是简单的 EditText,它由 TextWatcher 操作:

final EditText editText = (EditText) findViewById(R.id.edt);
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

}

@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}

@Override
public void afterTextChanged(Editable editable) {
if (editText == null) return;
String inputString = editable.toString();
editText.removeTextChangedListener(this);
String cleanString = inputString.toString().replaceAll("[$,.]", "");
BigDecimal bigDecimal = new BigDecimal(cleanString).setScale(2, BigDecimal.ROUND_FLOOR).divide(new BigDecimal(100), BigDecimal.ROUND_FLOOR);
String converted = NumberFormat.getCurrencyInstance().format(bigDecimal);
editText.setText(converted);
editText.setSelection(converted.length());
editText.addTextChangedListener(this);
}
});

如果您需要知道如何在 xml 中创建 EditText,请使用:

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/edt"
android:inputType="numberDecimal"
android:textDirection="anyRtl"
android:gravity="right"/>

这是一个老问题,但也许最好回答:)

关于Android:给EditText字段添加小数点,并使其随输入移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12830284/

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