在没有onclick的情况下在edittext中设置文本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在没有onclick的情况下在edittext中设置文本相关的知识,希望对你有一定的参考价值。

我正在尝试创建一个应用程序,允许自动转换文本当用户在keyborad中写一些没有onclick动作我想从editext得到文本并在转换后同时设置它,我试图使用TextWatcher但不起作用。这是我的代码:

EdiText text = v.findViewById(R.id.EditText1);
        text.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

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


          Transliterator transliterator = Transliterator.getInstance("Halfwidth-Fullwidth");
                    converted = transliterator.transliterate(text.getText().toString());
    text.setText(converted);


            }
            @Override
            public void afterTextChanged(Editable editable) {

            }

        });
答案

你应该打断无休止的递归!

class MyTextWatcher implements TextWatcher {
        boolean changed = false;
        @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) {
            if (changed == true) {
                changed = false;
                return;
            }
            Transliterator transliterator = Transliterator.getInstance("Halfwidth-Fullwidth");
            converted = transliterator.transliterate(s.toString());
            changed = true;
            text.setText(converted);
        }
    }

    text.addTextChangedListener(new MyTextWatcher());
另一答案

我认为问题在于这一行:

converted = transliterator.transliterate(text.getText().toString());
text.setText(converted);

您应该使用该方法的text,并在转换为CharSequence s视图后,而不是从text输入值。

希望这能解决你的问题。

以上是关于在没有onclick的情况下在edittext中设置文本的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有 pod 的情况下在 iOS 中设计概述的文本字段

如何在没有服务运行通知的情况下在android前台服务中设置通知接收器......如Whatsapp和Telegram?

如何在没有 onclick 属性的帮助下在 jQuery 函数中传递值?

默认情况下在日期选择器中设置特定日期

如何在不使用 AudioQueueRef 的情况下在 AudioQueue 中设置音量?

在没有 installp 的情况下在 AIX 中配置 JRE