当前位置: 首页 > 知识库问答 >
问题:

如何在编辑文本中添加身高,如(5'11)

岳玉书
2023-03-14

我正在编辑用户配置文件活动,其中我必须在编辑文本中输入用户的身高,如(5'6)(5'11)(英尺英寸)等。现在,当我在编辑文本中输入第一个字符时,一个撇号'会自动添加到编辑文本的第二个位置(在文本更改上)。

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

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

对不起我的英语不好

   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{

            }

        }
    });

共有1个答案

陶星辰
2023-03-14

我相信你在找这样一张支票:

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参数含义的更多信息,请查看以下答案。

 类似资料:
  • 我希望用户可以列出他的爱好。我不知道这张单子有多长。所以我有一个线性布局,里面有一个编辑文本,还有一个按钮,他可以在线性布局中添加一个编辑文本,但我不喜欢用户每次想添加一个霍比时都必须单击按钮,所以我希望当用户在上一个编辑文本中写下一些东西时,添加一个新的编辑文本。我的问题是,我现在不知道如何跟踪编辑文本何时不再为空,要添加另一个编辑文本 要添加编辑文本,我有以下功能: 我的想法是,我想在etar

  • 我想在警报对话框中添加两个编辑文本字段。虽然这个解决方案听起来很简单,但到目前为止,我还没有找到一个可行的解决方案。我无法同时设置两个(编辑文本)视图。 如果你想看更多的代码,请发表评论。 我希望第一个编辑文本出现在lot之后,第二个出现在quantity之后,而当我尝试在两个视图中推入时,它们中只有一个似乎在工作。 UPDATE:事实证明,实际上没有一种方法可以在不为警报对话框创建布局的情况下单

  • 我正在android studio中使用java开发和应用程序,希望在RecyclerView函数中编辑文本。我该怎么做?

  • 我有一个编辑文本框,我有调用ontouchlistener,它显示一个自定义对话框,当我单击setdate按钮时,日期选择器上的日期应该设置在编辑文本上,并且对话框应该得到Dississe。但是我不知道如何从日期选择器中获取日期,以及如何在编辑文本框中设置。我在date.init(year,monthOfYear,dayOfMonth,new MyOnDateChangedListener())中

  • 我有一个包含两个组件的UI--一个JEditorPane和一个JComboBox。我的目标是能够在JEditorPane中键入一些内容,选择文本的一部分,并且当它仍然被选中时,在可编辑的JComboBox中键入和/或选择一个值。 这是一个文本编辑器类型的程序,我想在其中只更改编辑器窗格中选定文本的字体大小。字体大小来自“可编辑”组合框。为了澄清一下,我不是在问如何对文本应用样式,我是在问如何在组合

  • 我开发了一个应用程序,我在其中反复使用同一个textview,所以我需要经常清除textview。 由于它与UI相关,我必须在UI线程上执行此任务,但仅清除textview就需要5-6毫秒,我想这似乎非常巨大。有谁能帮助我减少这个时间,这样我就可以非常顺利地管理我的UI任务,而不跳过任何帧? 我正在附上我的代码段以供参考,在这里我尝试了两种方法,但最短的时间是5毫秒。 有什么改进绩效的建议或替代方