나는 GridView
의 일부가 될 asynchronously
이미지를 다운로드 중입니다. 그리고 내가 지금 runOnUiThread();
이 어댑터에 데이터 세트를 올바르게 알리는 방법이 변경 되었습니까?
에 notifyDataSetChanged();
를 호출합니다 onCreate()
내 GridView
를 업데이트, 내 질문은 :이 할 수있는 더 좋은 방법이
있습니까? Thread
을 2 초 동안 잠자기 상태로 설정하여 어댑터의 데이터가 변경되는 시간에 이미지가 표시되도록합니다. 그러나 물론,이 조건을 하드 코딩하고 있습니다 (2 초 이상 소요될 수 있음). 인터넷 연결로 인해 GridView
이 올바르게 업데이트되지 않을 수 있습니다. 여기
는
private Runnable myRunnable = new Runnable(){
@Override
public void run() {
try {
Thread.sleep(2000);
updateData(); // contains notifyDataSetChanged()
if(images[0] == null){
Toast.makeText(getApplicationContext(),
"Your Internet Connection is not working properly", Toast.LENGTH_SHORT).show();
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
대단히 감사의
Thread
입니다!
ui 스레드 이외의 스레드에서 ui를 업데이트 할 수 없습니다. updateData의 기능은 무엇입니까? – Raghunandan
음, 그것은 UI 스레드입니다. 'UpdateData()'는 어댑터의 데이터를 설정하고'notifyDataSetChanged()'를 호출합니다. –