以下のコードを使用してリストビューを更新します。リストビューは常に上にあります
setListAdapter(MyAdapter);
MyAdapter.notifyDataSetChanged();
getListView().setEmptyView(empty);
しかし、毎回更新すると、リストは常に1番上に表示されます。 データを更新するだけで、上にはフォーカスしないようにします。 どうすればいいですか?
以下のコードを使用してリストビューを更新します。リストビューは常に上にあります
setListAdapter(MyAdapter);
MyAdapter.notifyDataSetChanged();
getListView().setEmptyView(empty);
しかし、毎回更新すると、リストは常に1番上に表示されます。 データを更新するだけで、上にはフォーカスしないようにします。 どうすればいいですか?
listview.setSelection(your_collection.size());
を追加する必要があります。これにより、ListViewを更新するときに選択されたListViewの最後の項目が作成されます。また、ListViewをリフレッシュした後にこれを呼び出します。
ArrayListを基にしたArrayAdapterを使用します。データを変更するには、リスト内のデータを更新し、
MyAdapter.notifyDataSetChanged()を呼び出してください。
SimpleAdapterでもnotifyDataSetChanged()を呼び出すことができますが、
情報が不十分です。ビューがルートレイアウトに基づいてどのように積み上げられているかを理解し、今のところあなたの質問を更新してください。これはあなたの問題を診断するのに十分な情報ではありません。 – JoxTraex
リストビューを更新する場合は、MyAdapter.notifyDataSetChanged();十分です。なぜあなたは、setListAdapter(MyAdapter);を呼び出しますか?これはあなたのリストビューが上になる理由です。 –
スクロール位置を保持するのではなく、更新後にリストビューがスクロールすることを意味しますか? – louielouie