Как автоматически обновить GalleryView из обработчика, вызываемого doInBackground? - PullRequest
1 голос
/ 16 ноября 2011

Я пытаюсь обновить 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 ]

1 голос
/ 16 ноября 2011

notifyDataChanged () необходимо задействовать в потоке пользовательского интерфейса, попробуйте это:

runOnUiThread(new Runnable() {
  public void run() {
    gaAdapter.add(newListItem);
    gaAdapter.notifyDataSetChanged();
    ga.setSelection(midposition);
  }
});
0 голосов
/ 16 ноября 2011

Попробуйте использоватьga.invalidate()

...