ArrayAdapterが上手く扱えず困っています。
位置情報を使ったアプリを制作しています。
ネット上にあるxmlデータを起動時に読み込んで、Item(自作クラス)に位置情報を含めた様々なデータを持たせています。
ネットからデータを非同期でロードするので、現在位置と取得タイミングがズレます。
なので、今のところ現在位置の取得が完了したタイミングで改めてItemが持っている位置情報との距離を計算し、Item.distanceにセットしています。
メインのViewはListViewで、各Viewに現在位置との距離(distance)を表示させていました。
これは自作ArrayAdapterクラスのgetViewで距離を計算してViewに貼り付ければ良かったので非常に楽だったのですが、次にこのItem.distanceをArrayに戻す必要が出てきました。
ネットからデータをロードした時点のArrayAdapter<Item>(各Itemのdistanceは空)
→位置情報をロードして、距離を計算した後のArrayAdapter<Item>(各Itemのdistanceにデータが入っている)
という状態にしたいのです。
ArrayListなら扱いが楽で
1.新しいArrayListを作る
2.元のデータをコピーしつつfor文等で手を加える
とするだけでいいのですが、ArrayAdapterがどういう風にListを持っている(繋げている?)のかがよく分からず、操作が難しいです。
今のところadapter.clear();を使って全部消した上で、改めてlistViewにsetして上書きしています。
もっと簡単な方法があるよ!という方はよろしくお願いします。
そもそも位置情報と非同期のネット通信に対する扱いがおかしいよ!という方もお願いします。

回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。