Je dois prendre le premier sujet 5 sur la gauche de this website. Mais je ne peux rien obtenir de ce site Web à mon application Android au android studio
. J'ai ajouté la bibliothèque et la permission de jsoup pour l'Internet ainsi je ne pense pas le problème d'eux. Quand je cours le programme, progressDialog
fonctionne mais il n'obtient pas des données du site Web. Cela devrait ajouter des données à listview, mais cela affichera un écran vide. Merci pour ton aide.Je ne peux pas faire de l'analyse html à partir d'un site Web dans Android Studio
Voici mon application main_activity
classe:
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();
}
}
}
Utilisez le debuger et vérifier si les demandes 'GET' retourne la bonne page. Si non - le problème est avec la demande. Si oui, le problème est la façon dont vous analysez le résultat. – TDG
Il semble qu'il n'y ait pas de problème dans le débogage. La dernière ligne dit dans le débogage '' Connecté à la machine virtuelle cible, adresse: 'localhost: 8615', transport: 'socket' ''. –
Cela signifie que le débogueur fonctionne bien :) Avez-vous mis un point d'arrêt afin que vous puissiez inspecter les valeurs de 'doc' par exemple? – TDG