Как мне автоматически обновить GalleryView из обработчика, вызываемого doInBackground?
Я пытаюсь освежить GalleryView
с новыми предметами, добавляя предметы в Adapter
и делать следующее внутри обработчика, который вызывается изнутри doInBackground
метод AsyncTask
,
private final Handler handler = new Handler() {
public void handleMessage(Message msg) {
if(msg.arg1 == 1){
gaAdapter.notifyDataSetChanged();
ga.setAdapter(gaAdapter);
ga.setSelection(midposition);
}
}
};
GalleryView
кажется, отвечает на приведенный выше код, но не обновляется автоматически. Элементы обновляются только при горизонтальной прокрутке. Как я могу сделать это автоматически?
2 ответа
Решение
notifyDataChanged() должны быть вовлечены в поток пользовательского интерфейса, попробуйте это:
runOnUiThread(new Runnable() {
public void run() {
gaAdapter.add(newListItem);
gaAdapter.notifyDataSetChanged();
ga.setSelection(midposition);
}
});