在Android应用程序中,我有一个< code>EditText,它应该用应用程序数据中的值替换某些字符串。
例如,如果用户键入$username
则应将其替换为当前登录的用户的名称。
在 EditText
上应用
的文本观察器
的 afterTextChanged()
方法中的可编辑参数将$username
替换为正确的值,但问题是,如果我按下任何字符,则在$username
被替换为实际用户名之后,它会附加用户名
后跟按下的字符。
e. g.
假设当前登录的用户名是乔
a、 如果输入嗨,这是@username
b.< code>afterTextChanged()将其更改为< code >嗨,我是乔
C。现在,如果我按任何其他字符(比如我按g或空格),然后EditText
中的文本更改为嗨,这是Joeusernameg
OR嗨,这是Joeusername
如何获得步骤b
中的输出?
etTemplateMessage.addTextChangedListener(new TextWatcher() {
@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) {
final String strUserNameCode = "$username";
String text = s.toString();
if(text.contains(strUserNameCode)){
int startIndex = text.indexOf(strUserNameCode);
int endIndex = startIndex + strUserNameCode.length();
Editable profileName = new SpannableStringBuilder(FileUtil.getUTF8String(settingDTO.getProfileName()));
s.replace(startIndex, endIndex, profileName);
}
}
});
在您的afterTextChange方法中,您应该将文本设置为编辑文本。而且String有replace(CharSequence old,CharSequence new)方法你也可以用它。像这样,
PublishSubject publishSubject = PublishSubject.create();
publishSubject.debounce(200, TimeUnit.MILLISECONDS)
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(query -> onTextChanged(query.toString()));
void onTextChanged(String text){
final String strUserNameCode = "$username";
etTemplateMessage.setText(text.replace(strUserNameCode, FileUtil.getUTF8String(settingDTO.getProfileName())));
}
并在您的后文本更改方法调用发布子主题.onNext( s.到字符串())
我有Maven应用程序,具有3个不同的配置文件,如下所示 我有这样的Maven结构: src/main/config/default/WEB-INF/WEB。xml src/main/config/dev/WEB-INF/WEB。xml src/main/config/test/WEB-INF/web.xml src/main/config/prod/WEB-INF/web.xml src/mai
问题内容: 有没有办法替换放置在HTML正文中的table元素内的普通文本? 喜欢用“ hi”代替“ hello”吗? 请仅使用不带 jQuery的* JavaScript 。 * 问题答案: 要用另一个字符串替换HTML中的字符串,请使用innerHTML的replace 请注意,这将替换整个正文的第一个实例,包括HTML代码中的任何实例(例如,类名等。),因此请谨慎使用- 为了获得更好的结果,
在RestEasy 3.0.16中,最终版本PreProcessInterceptor接口是不推荐的。那么这个接口的适当替换是什么。在jboss EAP7中,RestEasy Version3.0.16.final被使用。
我试着这样读: 我尝试只打印出字符串(当我创建string str=new string(allBytes,“UTF-8”)时),但我得到的只是开头的一个正方形,然后是70多个没有文本的空行。然后我尝试了int charCode=integer.parseint(str.substring(I,I+8),2);并打印出每个单独的字符,但我得到了一个NumberFormatException。我甚至
问题内容: 我目前正在开发一个简单的聊天应用程序。我想在此应用程序中添加表情符号功能。我已经有一个从其他用户接收字符串的功能。我想要的是- 如果用户发送的文本包含CharSequence之类的字符,例如“:D”或“:p”,我希望将它们更改为表情符号。如何实现此功能? 我想要这样的功能: 如果可以的话,请帮助我。如果还有其他方法,请提及它们。 问题答案: 你可以这样尝试
无法在表列中发送值。当我试图使用Selenium在列中插入值时,我得到了不同的错误。 > 然后单击并编辑该值。 传递的值未插入表列中。但是我可以单击Tables列。我的考试通过了。 然后尝试设置值。它显示超时的错误。 我再次使用div/span组合作为XPath,并编辑了该值。但这并没有反映在表中。 在这里我没有得到任何错误。但保存后未反映该值。 我给元素添加了各种格式。 div/[id] HTM