2017-03-27 7 views
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; 
    } 

}} 
+0

です'String result1'を' String result6'に変更した後、すぐに 'String [] resultsizqに*現在の*値(デフォルト値 - ' null')を格納します= {結果1、結果3、結果5、}; 'つまり、配列は 'null'で埋められます。後で 'result1'配列の値を更新しても、以前の値は保持されます。 – Pshemo

+0

私は、htmlをダウンロードした後にString []を更新する方法をGoogleで検索してきましたが、何も見つかりませんでした。どうやって元気? –

+0

[OK]を気にしないでください。 –

答えて

0

私は、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; 
     } 

を使用して、ウェブサイトのロゴを取得し、ウェブサイトのソースコードを使用すると、宣言した `doit`クラスで

<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 --> 
関連する問題