場所(ネットワークまたはgps)の受信には時間がかかるため、リストビューで位置データをどのように使用しますか。作成時にリストビューにデータが入力されている場合、多くの場合、場所はまだ見つからず、nullになります。
このタイプのビューを設計してリストビューをレンダリングし、その後行に位置データを入力するのが最善の方法ですか?
もしそうなら、そうでなければ、最良のアプローチは何ですか?これをコード例でどのように実装しますか?
場所(ネットワークまたはgps)の受信には時間がかかるため、リストビューで位置データをどのように使用しますか。作成時にリストビューにデータが入力されている場合、多くの場合、場所はまだ見つからず、nullになります。
このタイプのビューを設計してリストビューをレンダリングし、その後行に位置データを入力するのが最善の方法ですか?
もしそうなら、そうでなければ、最良のアプローチは何ですか?これをコード例でどのように実装しますか?
ListViewとそのデータリストを設定し、データが変更されたときに通知することができます。これが例です。
ArrayList<String> myData = new ArrayList<String>();
ListView myListView = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
myListView = (ListView)findViewById(R.id.mylistview);
myListView.setAdapter(new ArrayAdapter<String>(this, R.id.textlayout, myData));
}
私がしたことは、リストビューを取得し、空の配列リストを使用してアダプターをセットアップすることでした。これで、リストビューのデータを更新したいときはいつでも、次のようにします。
myData.add("My new location");
myListView.getAdapter().notifyDataSetChanged();
リストビューが更新されます。これを行う別の方法は、渡されたリストではなく、データをアダプターに直接追加することです。
myArrayAdapter.setNotifyOnChange(true);
myArrayAdapter.add("My new location");