gpt4 book ai didi

android - 如何在 (5'11) 等编辑文本中添加人物高度

转载 作者:行者123 更新时间:2023-11-29 02:22:31 25 4
gpt4 key购买 nike

我正在处理 EdituserProfileActivity,我必须在 EditText 中输入用户的高度,例如 (5'6)(5'11)(feet'inch.)等。现在,当我在 EditText 中输入第一个字符时,单个撇号 ' 会自动添加到 (onTextChanged) 的第二个位置 编辑文本

问题是,当我尝试删除字符时,它不会在第一个位置之后删除,因为当 EditText 长度为 1 时,它会在第一个位置添加一个 '第二位。

我该如何解决这个问题?请与我分享任何解决方案。

抱歉我的英语不好

   edtUserHeight.addTextChangedListener(new TextWatcher() {

public void afterTextChanged(Editable s) {


}

public void beforeTextChanged(CharSequence s, int start, int count, int after) {}

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

int len=edtUserHeight.getText().toString().length();

if(len==1)
{
edtUserHeight.setText(edtUserHeight.getText()+"'");
edtUserHeight.setSelection(edtUserHeight.getText().length());
}
else{

}

}
});

最佳答案

我相信您正在寻找这样的支票:

if (before == 1 && s.length() == start) {
return; // allows delete
}

这将允许您在操作中执行传递。所以你的代码看起来像这样:

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

String height = edtUserHeight.getText().toString();

if(height.length() == 1) {
edtUserHeight.setText(height + "'");
}

if (before == 1 && s.length() == start) {
return; // allows delete
}else{
edtUserHeight.setSelection(height.length());
}
}

有关 before 和 start 参数含义的更多信息,请查看 this回答。

关于android - 如何在 (5'11) 等编辑文本中添加人物高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54478719/

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