-1
this website 왼쪽의 첫 번째 항목을 5 개 가져와야합니다. 하지만이 웹 사이트에서 안드로이드 앱 android studio
에 아무것도 가져올 수 없습니다. jsoup 라이브러리와 인터넷 허가를 추가 했으므로 문제가되지는 않습니다. 프로그램을 실행하면 progressDialog
가 작동하지만 웹 사이트에서 데이터를 가져 오지 못합니다. 목록보기에 데이터를 추가해야하지만 빈 화면이 표시됩니다. 도와 줘서 고맙다.Android Studio의 웹 사이트에서 html 구문 분석을 수행 할 수 없습니다.
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' 요청이 올바른 페이지를 반환하는 경우 확인
여기
main_activity
클래스 내 응용 프로그램입니다. 그렇지 않은 경우 문제가 요청과 관련됩니다. 그렇다면 문제는 결과를 파싱하는 방법입니다. – TDG디버그에 문제가없는 것처럼 보입니다. 마지막 행은 디버그에서 ''대상 VM에 연결되었습니다. 주소 : 'localhost : 8615', 전송 : 'socket' ''. –
즉, 디버거가 잘 작동한다는 것을 의미합니다. 예를 들어'doc'의 값을 검사 할 수 있도록 중단 점을 넣었습니까? – TDG