У меня есть AsyncTask, где в «doinbackground» обновляется переменная «pics», позже в postexecute я обновляю все, проблема в том, что я хочу обновить адаптер, когда я обновляю разномастные "фото". где я должен объявить адаптер и вызвать notifyDataSetChanged ??Android - адаптер обновления Gridview на фоне
protected void onPostExecute(String file_url) {
// dismiss the dialog after getting all products
// updating UI from Background Thread
runOnUiThread(new Runnable() {
public void run() {
/**
* Updating parsed JSON data into ListView
* */
mAdapter = new Gridadapter(tab.this, pics);
gridView.setAdapter(mAdapter);
}
});
thx!
Done, наконец, я положил в doinbackground после каждого изменить в фотографии с \t \t runOnUiThread (новый Runnable() { \t \t \t \t общественности недействительным запуска() { \t \t \t \t \t/** \t \t \t \t \t * Обновление разобран данных JSON в ListView \t \t \t \t \t * */ \t \t \t \t \t mAdapter.notifyDataSetChange д(); \t \t \t \t} \t \t \t}); спасибо! – Sk8eR
это работает .. но вы не пишете очень оптимизированный код. вы должны вызвать mAdapter.notifyDataSetChanged() как можно меньше, потому что он будет обновлять весь вид. если вы обновите адаптер и вызовите mAdapter.notifyDataSetChanged() только один раз, представление будет обновляться только один раз, и пользовательский интерфейс будет более восприимчивым. –