嗨,我对编码真的很陌生。我试图从特定网站 http://www.rfebs.es/estadisticas/2017/liga/B_res.php 提取文本(HTML)使用 jsoup 但我似乎无法做到这一点。这是我的代码,提前谢谢您!
package davidgb.baseballspain;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class MainActivity extends AppCompatActivity {
TextView texx;
Document doc;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
texx=(TextView)findViewById(R.id.textp);
Button but1 = (Button)findViewById(R.id.but);
but1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new doit().execute();
}
});
}
public class doit extends AsyncTask<Void, Void, Void> {
String words;
@Override
protected Void doInBackground(Void... params) {
try {
doc = Jsoup.connect("http://www.rfebs.es/estadisticas/2017/liga/B_res.php").get();
words= doc.text();
} catch (Exception e) {
e.printStackTrace();
}return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
texx.setText(words);
}
}
}
最佳答案
修改您的类,以便您不需要跨不同线程访问公共(public)变量:
public class doit extends AsyncTask<Void, Void, String> {
@Override
protected String doInBackground(Void... params) {
try {
Document doc = Jsoup.connect("http://www.rfebs.es/estadisticas/2017/liga/B_res.php").get();
return doc.text();
} catch (Exception e) {
e.printStackTrace();
} return null;
}
@Override
protected void onPostExecute(String result) {
texx.setText(result);
}
}
编辑 1
我在模拟器上重新运行了完全相同的代码,它的效果就像一个魅力。附上截图作为证明。请注意:请确保您的 list 中启用了 INTERNET
:
<uses-permission android:name="android.permission.INTERNET" />
关于java - Jsoup 代码不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42867869/