有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在应用程序启动时更新TextView结果

我正在将数据从网站拉到我的应用程序中。我希望TextView在用户启动应用程序时立即显示我希望从网站获得的结果。然而,html代码有时会使结果看起来很奇怪,我正在尝试纠正它。我有代码可以做我想做的事情。我就是不知道如何让它在应用程序启动时自动完成所有的事情。它需要从网站中提取代码,如果它收到字符串中的任何特殊符号,我希望它在应用程序启动后立即更正。这里有一个例子

TextView tv = (TextView) findViewbyId(R.id.my_textview_result);
tv.setText(resultFromWebsite);

结果它拉:你u0026我永远

我想要的结果是:你&;永远爱我!我的应用程序应该可以纠正这一点

这是我的修正码

public void symbolTextFilter(TextView myTv) {
String getData = tv.getText().toString();

if (getData.contains("u0026") {
   String replace = getData.replace("u0026", "&");
   myTv.setText(replace);
}

现在是我的onCreate方法

TextView tv = (TextView) findViewbyId(R.id.my_textview_result);
tv.setText(resultFromWebsite);

symbolTextFilter(tv);

它不会做出这样的更正。但如果我将symbolTextFilter(电视)放在onClickListener按钮中,它就会出现。我不想在按钮中指定更正。我想要自动的。我的猜测是,onCreate中的所有内容都发生得太快,无法进行更正。我该如何解决这个问题?提前谢谢


共 (2) 个答案

  1. # 1 楼答案

    试试这个:

    tv.setText(symbolTextFilter(resultFromWebsite))
    

    应使用SymbolExtFilter方法仅处理字符串:

    public void symbolTextFilter(String input) {
    if (input.contains("u0026") {
       return input.replace("u0026", "&");
    } else {
       return input 
    }
    
  2. # 2 楼答案

    没关系,我明白了!我不确定“\”是从哪里来的,因为它不在修正前的原始字符串中。我用这个修复了它

    public String symbolTextFilter(String input) {
    if (input.contains("u0026") {
    return input.replace("\\" + "u0026", "&");
    } else {
    return input 
    }