如何解决从 HTML 页面创建文档后,Jsoup 方法不将数据存储到 TextView
我试过这个代码:
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() 并且没有任何改变。
Document doc = Jsoup.connect("https://google.com/").get();
String word = doc.title();
text.setText(word);
我确定我忽略了一些明显的东西。有人能看到吗?
解决方法
您必须在另一个线程中执行此操作。你可以试试 AsynkTask 这个。既然现在已经弃用了,我只是给你举个例子。
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;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。