在没有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 函数中传递值?