嗨,我真的很新编码。我试图使用jsoup从特定网站http://www.rfebs.es/estadisticas/2017/liga/B_res.php提取文本(HTML),但我似乎无法做到这一点。这是我的代码,提前谢谢你!
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);
}
}
}
答案 0 :(得分:0)
修改您的类,以便您不需要跨不同的线程访问公共变量:
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
我在我的模拟器上重新运行完全相同的代码,它就像一个魅力。将屏幕截图附加为证据。一个注意事项:确保您的清单中已启用INTERNET
:
<uses-permission android:name="android.permission.INTERNET" />