首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从HTML页面创建文档后不将数据存储到TextView中的Jsoup方法

问从HTML页面创建文档后不将数据存储到TextView中的Jsoup方法
EN

Stack Overflow用户
提问于 2021-02-12 11:01:06
回答 1查看 22关注 0票数 0

我尝试了以下代码:

代码语言:javascript
复制
public class MainActivity extends AppCompatActivity {
TextView text;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        netAccess();
        text = findViewById(R.id.textview1);
    }

    public void netAccess()
    {

        try {
            Document doc = Jsoup.connect("https://google.com/").get();
            String word = doc.title();
            text.setText(word);
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }

    }

但是在我初始化"doc“之后什么也没有发生,TextView没有改变,"word”也没有改变它的值。我使用Android Studio的调试来查看值是否发生了变化,并且TextView由于某种原因没有更新,但是什么也没有发生。我已经在多个AVD上尝试过了,我找不到任何原因来说明为什么它不能工作,我用title()代替text(),没有任何改变。

代码语言:javascript
复制
Document doc = Jsoup.connect("https://google.com/").get();
String word = doc.title();
text.setText(word);

我确信我忽略了一些明显的东西。有人能看到吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-12 14:08:41

您必须在另一个线程中执行此操作。你可以试试这个AsynkTask。既然它现在被弃用了,我只是给你举个例子。

代码语言:javascript
复制
public void netAccess()
{
    new MyTask().execute();
}

class MyTask extends AsyncTask<Void,String,String>
{
    @Override
    protected String doInBackground(Void... arg0) {

        String title  = "";
        try {
            Document doc = Jsoup.connect("https://google.com/").get();
            title = doc.title();
            Log.v("MYJSOUP", title);
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        return title;
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66165836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档