this websiteの左側にある最初の5つのトピックを取る必要があります。しかし、私はandroid studio
の私のアンドロイドアプリにこのウェブサイトから何も得ることができません。私はjsoupライブラリとインターネットの許可を追加したので、問題はないと思っています。私はプログラムを実行すると、progressDialog
が動作しますが、ウェブサイトからデータを取得しません。リストビューにデータを追加する必要がありますが、空の画面が表示されます。助けてくれてありがとう。ここでAndroidスタジオのウェブサイトからhtml解析を行うことができません
は私のアプリmain_activity
クラスです:
package ahmety.wired;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
import java.io.IOException;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
private ListView lv;
public ArrayList liste= new ArrayList();
private ArrayAdapter<String> adapter;
private static String URL="https://www.wired.com/";
private ProgressDialog progressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv=(ListView)findViewById(R.id.list);
adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,liste);
new VeriGetir().execute();
}
private class VeriGetir extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
progressDialog= new ProgressDialog(MainActivity.this);
progressDialog.setTitle("WIRED");
progressDialog.setMessage("Loading..");
progressDialog.setIndeterminate(false);
progressDialog.show();
}
@Override
protected Void doInBackground(Void... voids) {
try {
Document doc = Jsoup.connect(URL).timeout(30 * 1000).get();
Elements makaleAdi = doc.select("li.card-component__description");
liste.add(makaleAdi.text());
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
lv.setAdapter(adapter);
progressDialog.dismiss();
}
}
}
をdebugerを使用し、 'GET'リクエストが正しいページを返すかどうかを確認します。そうでない場合、問題はリクエストにあります。はいの場合 - 問題は結果を解析する方法です。 – TDG
デバッグに問題はないようです。最後の行はデバッグ中に ''ターゲットVMに接続しました。アドレス: 'localhost:8615'、トランスポート: 'socket' ''。 –
これはデバッガがうまく動作することを意味します:)例えば 'doc'の値を検査できるようにブレークポイントを設定しましたか? – TDG