[英]Jsoup not getting html correctly(?)
好的,我使用Jsoup從網站上下載了一些html,並試圖將所說的html放在listview中。 該應用程序編譯沒有錯誤,但是當我單擊按鈕時,列表視圖為空。 這(imo)可能是由於以下事實:我沒有正確實現jsoup代碼,並且沒有下載html,或者即使正確下載了html,也沒有正確地將其添加到listview中(是的,我已經實現了互聯網許可)。 這是我的代碼:
package davidgb.baseballspain;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
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> {
ListView lista = (ListView)findViewById(R.id.lista);
String result1;
String result2;
String result3;
String result4;
String result5;
String result6;
String[] resultsizq = {result1, result3, result5,};
String[] resultsder = {result2, result4, result6,};
@Override
protected void onPostExecute(Void aVoid) {
CustomAdapter customAdapter = new CustomAdapter();
lista.setAdapter(customAdapter);
}
Class CustomAdapter extends BaseAdapter{
@Override
public int getCount() {
return resultsizq.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View view, ViewGroup parent) {
view = getLayoutInflater().inflate(R.layout.customlayout,null);
TextView resultsiz= (TextView)view.findViewById(R.id.resultsiz);
TextView resultsde= (TextView)view.findViewById(R.id.resultsde);
resultsiz.setText(resultsizq[position]);
resultsde.setText(resultsder[position]);
return view;
}
}
protected Void doInBackground(Void... params) {
try {
Document doc = Jsoup.connect("http://www.rfebs.es/estadisticas/2017/liga/B_res.php").get();
Elements result = doc.getElementsByClass("bianco_me");
if (result.size() > 0) {
result1 = result.get(1).text();
result2 = result.get(2).text();
result3 = result.get(3).text();
result4 = result.get(4).text();
result5 = result.get(5).text();
result6 = result.get(6).text();
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}}
我使用以下Java代碼檢索網站徽標
@Override
protected Void doInBackground(Void... params) {
try {
// Connect to the web site
Document document = Jsoup.connect(url).get();
// Using Elements to get the class data
Elements img = document.select("div[class=header-logo] a[title=AndroidBegin] img[src]");
// Locate the src attribute
String imgSrc = img.attr("src");
// Download image from URL
InputStream input = new java.net.URL(imgSrc).openStream();
// Decode Bitmap
bitmap = BitmapFactory.decodeStream(input);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
網站源代碼為
<div class="header-logo"><a href="http://www.androidbegin.com/" rel="home" title="AndroidBegin"><img src="http://www.androidbegin.com/wp-content/uploads/2013/04/Web-Logo.png" alt="AndroidBegin" class="header-logo" /></a></div>
</div><!-- $header_logo_align -->
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.