AndroidでListviewのコンテンツを変更しようとしました。その後、リストを再描画します。残念ながらリストの要素は変わりますが、古い項目はバックグラウンドで表示されます。新しいリストに含まれるアイテムが少なくなると、古いアイテムはまだクリック可能であるにもかかわらず、まだ表示されているので、リストの一部であるように見えます。 Android Taskmanagerを使用してアプリから飛び出してから、アプリをもう一度開くと、リストが正しく表示されます。 したがって、私はそれがリフレッシュの問題でなければならないと思う。Android Listviewはアダプタの変更後に古いアイテムを保持します
私はListViewコントロールに渡す新しいアダプタを作成し、完全なコンテンツが変化すると:私はそれを達成しようとするにはどうすればよい
。私のコードでは、「お気に入り」はアダプタに渡す新しい配列です。私はまた、リストをクリアしてそれを無効にしようとします。これのすべては(AsyncTaskのonPostExecute)UIスレッドで発生
MyAdapter newAdapter = new MyAdapter(
context, favorites);
MyAdapter current_adapter = (MyAdapter) myList.getAdapter();
if((current_adapter!=null)){
current_adapter.clear();}
myList.setAdapter(null); //inserted this because of answers, but with no effect.
myList.setAdapter(newAdapter);
myList.invalidateViews();
アダプターの明確な方法:あなたが、私はstackoverflowの上で同様の問題に彼女をすべてのソリューションを試してみました見ることができるように
public void clear(){
items.clear();
notifyDataSetChanged();
}
。残念ながら何も働いていませんでした。
これを解決する方法はありません。
編集:
は、私はまた、効果なしで、新しいものを渡す前に、アダプタはnullを設定することを試みました。 .setAdapter(null);
また、editTextをクリックしてキーボードを開くと、画面がリフレッシュされ、リストが正しく表示されます。
私はこれを試しましたが、残念ながら効果はありません。 – AndroidDev23
それは最終的に解決策でしたか?私にとってはうまくいかず、同じ問題があります。 – mikus