0
私はJsoupを使ってウェブサイトからいくつかのHTMLをダウンロードし、HTMLをリストビューに入れようとしています。アプリはエラーなしでコンパイルされますが、ボタンをクリックするとリストビューは空です。これは私がjsoupコードを正しく実装しておらず、HTMLをダウンロードしていないという事実、またはHTMLを正しくダウンロードしていても正しくリストビューに追加されていないことが原因である可能性があります(はい、インターネット許可)。ここに私のコードは次のとおりです。Jsoupが正しくHTMLを取得していない(?)
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;
}
}}
です'String result1'を' String result6'に変更した後、すぐに 'String [] resultsizqに*現在の*値(デフォルト値 - ' null')を格納します= {結果1、結果3、結果5、}; 'つまり、配列は 'null'で埋められます。後で 'result1'配列の値を更新しても、以前の値は保持されます。 – Pshemo
私は、htmlをダウンロードした後にString []を更新する方法をGoogleで検索してきましたが、何も見つかりませんでした。どうやって元気? –
[OK]を気にしないでください。 –