一介の開発者の戯言

以前から開発しているコミックビューアですが、ダウンロード画面でダウンロードが完了したらアイコンを変更しようと思ったのですが
findViewByIdなどを使っても対象のオブジェクトは見つからないのでどうすればいいのか色々調べてやっと解決しました。
ListViewにsetAdapterを使っている場合はAdapterの内容を更新してからnotifyDataSetChangedを呼び出すとListView一覧の内容が変化します。
変化はしますが再描画はされませんのでListViewのinvalidateViewsメソッドを呼び出すことで再描画されました。
スクロール位置には変化が起きないのでわざわざスクロール位置を覚えて再描画後に元の位置に戻したりする手間は掛かりません。

handler.post(new Runnable(){
  public void run(){
    adapter.notifyDataSetChanged();
    listview.invalidateViews();
  }
});

こんな感じです。
アイコンの変更などが上手くいかなかったので諦めていた複数選択後のダウンロードも実装してみようかと思います。
今度はダウンロード中にサスペンドしないようにする方法を探さなければいけません。
前途多難です。

コメント

コメントを受け付けておりません。