내 데이터가로드 될 때까지 사용자가 진행 상황에 대한 적절한 피드백을 얻으려고 진행률 표시 줄을 android에서 사용하고 있습니다. 바의 코드는 아래와 같다 :진행률 표시 줄을 사용하면 목록보기가 채워지지 않습니다.
final ProgressDialog myProgressDialog;
myProgressDialog = ProgressDialog.show(ListingPage.this,"Please Wait", "Loading Date", true);
new Thread() {
public void run() {
try{
setSelected();
sleep(5000);
} catch (Exception e) { }
myProgressDialog.dismiss();
}
}.start();
하는 setSelected() 메소드는 그 항목을 표시하는 목록보기를 사용하여 다음 배열 목록에 데이터를 삽입하고 배열 어댑터를 작성하고있다.
그래서 진행 막대에 setSelected() 메서드를 넣으면로드 원이 표시되지만로드가 완료되면 표시됩니다. listview에 아무 것도 표시되지 않습니다. 그러나 진행 바코드 (스레드 및 메서드 실행)를 가져 와서 setSelected() 메서드를 호출하면 listview에서 데이터를 성공적으로 선언합니다. 지금까지 진행 바코드가 어떤 일을하고 있다고 결론을 내었습니다 ... 그래서 내가 코드에 추가하거나 코드에서 제거 할 항목이 누락되었음을 알고 싶었습니다. 온라인 소스에서 데이터를 읽으면서 프로그램 진행률 표시 줄이 필요하며 시간이 오래 걸리므로 사용자가 불편할 수 있습니다.
Janusz! 위의 메서드를 사용했지만 코드를로드 할 때 검색 막대가 멈 춥니 다. new AsyncTask() { //이 작업은 백그라운드에서 수행됩니다. protected void doInBackground (void ... 매개 변수) { setSelected(); return null; } //이 ID는 UI 스레드에서 완료 됨 protected void onPostExecute (Long result) { populateList (data); myProgressDialog.dismiss(); } } .execute(); 나는 스레드가 매달려 있다고 생각한다. –
kaibuki
죄송합니다. 여기에 오류를 찾으려면 코드가 더 필요합니다. 원래 질문으로 편집 해보십시오. – Janusz