내 안드로이드 프로젝트에 Jsoup에 문제가 있습니다. 데이터를 가져 와서 그 데이터를 GUI에 저장하는 메소드가 있습니다. 문제는 내가 데이터를 검색 할 때까지 기다릴 필요가 없다는 것입니다. 나는 AsyncTask에 배경 메서드를 사용하여 get 데이터 메서드를 사용하고 해당 데이터를 사용하는 post 메서드에 넣습니다. 백그라운드 메소드에 대한 리턴은 jsoup 메소드의 정보가있는 객체의 arraylist입니다.AsyncTask의 UI 업데이트
내가 작업하고있는 코드를 추가 할 수 없지만 예제 프로젝트에 비슷한 코드를 추가했습니다. 같은 문제.
코드 예제의 주요 활동
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView = findViewById(R.id.exampleTextview);
ArrayList<ExampleObject> arrayList = new ArrayList<>();
JsoupClass jsoupClass = new JsoupClass();
arrayList = jsoupClass.getStaffinfomation(arrayList, "examplename");
textView.setText(arrayList.get(0).getName());
}
}
Jsoup 클래스 예 :
public class JsoupClass {
public ArrayList<ExampleObject> getStaffinfomation(final ArrayList<ExampleObject> emptyArray, final String infoFind){
class getStaff extends AsyncTask<ArrayList<ExampleObject>, Void , ArrayList<ExampleObject>> {
@Override
protected ArrayList<ExampleObject> doInBackground(ArrayList<ExampleObject>[] arrayLists) {
Document doc = Jsoup.connect(Config.ExampleURL).get();
}
Elements tableRows = doc.select("tr");
for(int i = 0; i < tableRows.size(); i++) {
if (tableRows.get(i).text().contains(infoFind)) {
//Store the information as a object
String fullname = tableRows.get(i).select("td").get(0).select("a").text();
emptyArray.add(new ExampleObject(fullname));
}
}
}
getStaff getStaff = new getStaff();
getStaff.execute();
return null;
}
}
객체 클래스
public class ExampleObject {
private String name;
public ExampleObject(String name){
this.name = name;
}
public String getName(){
return name;
}
}
죄송합니다 전에 코드를 추가하지 않는 경우,이 말이 :)
을 만드는 희망
문제가있는 코드를 추가하십시오. 이 시점에서 우리는 단지 추측 할 것입니다. – Barns
@Barns 코드를 추가했습니다. 추가하지 않으 셨다니 죄송합니다. – Darren