我是asynchronously
下載將成爲GridView
的一部分的圖像。並更新onCreate()
內GridView
,我請一個runOnUiThread();
如何正確通知此適配器其數據集已更改?
notifyDataSetChanged();
現在,我的問題是:
有沒有更好的方式來做到這一點?我將Thread
設置爲休眠2秒,以確保映像在適配器中的數據發生更改時存在。但是,當然,我對這種情況進行了硬編碼(可能需要超過2秒),並且互聯網連接可能會失敗,從而阻止GridView
正確更新。
這裏是Thread
,
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();
}
}
};
非常感謝您!
你不能從ui線程以外的線程更新ui。 updateData有什麼作用? – Raghunandan
嗯,這是一個用戶界面線程。 'UpdateData()'設置適配器的數據並調用'notifyDataSetChanged()' –