内容へ移動
WildTree Wiki
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
トレース:
データセットの操作
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== データセットの操作 ====== ===== 概要 ===== ListViewやGalleryなどのウィジェットは、リストをデータセットとして保持する。データセットの操作は、リストそのもの、或いは、Adapterを経由して行われる。 ===== Adapter経由での操作 ===== 最も一般的なのは、Adapterを経由して操作することである。 add(), insert(), remove()などの一般的な操作は揃っている。 操作は、即座にViewに反映されるが、故に、UIスレッド以外から行うと例外が起こる。 UIスレッド以外から呼び出す場合はHandler経由になるが、順序保証もないため、連続してデータをadd()する場合などに問題があるかも知れない。 そのような場合には、Listを直接操作することになる。 ===== Listそのものの操作 ===== Listそのものを操作することで、データセットを変更することは可能である。 しかし、変更が即座に Viewに反映されることはない。 逆に言えば、UIスレッド以外から操作を行う場合、或いは、大量のデータを追加や削除する場合に向いている。 Handlerを経由するわけでもないので、データセットの操作順序は保証される。 **ただし、UIスレッド側で、何らかの操作-リストをスクロールするなど-が入ると、一貫性が破綻し、IllegalStateExceptionを発生することがある。UI側からの操作を禁止するにはsetVisibility(View.GONE)するなどする必要があろう。(freeze/thawのような操作はAndroidにはないようである。)** データセットの操作をView に反映させるには、notifyDatasetChanged()を呼び出す必要がある。 <code> adapter.notifyDatasetChanged(); </code> この操作は、UIスレッドで行われる必要がある。 従って、 <code> handler.post(new Runnable(){ public void run() { adapter.notifyDatasetChanged(); } }); </code> のように、必要に応じて、Handlerを経由する。 [[Androidに関して]]へ戻る。
データセットの操作.txt
· 最終更新: 2015/04/10 08:27 by
127.0.0.1
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ