我尝试了以下代码:
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);我确信我忽略了一些明显的东西。有人能看到吗?
发布于 2021-02-12 14:08:41
您必须在另一个线程中执行此操作。你可以试试这个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;
}
}https://stackoverflow.com/questions/66165836
复制相似问题