私のアダプタを更新doesntのユーザーのために表示されます......adapter.notifyDataSetChangeは()これは私のコードである
私の問題は、この方法を使用して更新されていないということです。
ありがとうございます!
私のアダプタを更新doesntのユーザーのために表示されます......adapter.notifyDataSetChangeは()これは私のコードである
私の問題は、この方法を使用して更新されていないということです。
ありがとうございます!
アクティビティを再開するたびにアダプタを作成しないでください。 onCreate()
に1度作成し、notifyDataSetChanged()
をonResume()
に電話してください。
しかし、あなたの最大の問題は、onResume()で新しいアダプタを作成して、それをListViewに接続しないことです!あなたには、あなたのコードを維持しなければならない場合は、あなたがこれを行うonCreate(...)
でonResume()
ありがとう!私はそれがこのように働いていたことを知っていませんでした........今あなたは私のコードをすべてあなたが意味するように変更するつもりです.... – zapotec
に新しいアダプタを作成した後、その後、それを行うには...
adaptador = new ListaAdapter(this, listaCompras);
setListAdapter(adaptador);
をsetListAdapter(adaptador)
を追加し、あなたはへの参照を渡していますListView
- new...
への呼び出しによって作成されたListAdapter
への参照です。今adaptador
が新しいListAdapter
への新しい参照を持っていますが、ListView
自体はまだあなたがonCreate(...)
でインスタンス化最初ListAdapter
への参照を維持している
onResume()
で
...
adaptador = new ListaAdapter(context, listaCompras);
adaptador.notifyDataSetChanged();
... 。
最も簡単なのは、コードをonCreate(...)
から完全に削除し、onResume()
がListAdapter
の作成とsetListAdapter(...)
の呼び出しを処理するようにすることが最も簡単です。
アプリが再開するたびにnweアダプターを作成することはかなりです廃棄物。あなたは一度だけそれを作成する必要があります – Mimminito
@Mimminito:OK - 私は間違って言いました。 'onResume()'にチェックを入れて、アダプタが 'null'かどうかを調べ、' ListView'を作成して、必要に応じて使用するように設定します。私のポイントは、データが頻繁に変更される可能性があるため、onCreate(...)ではなくonResume()でこのようなことを行うのが最善であるということです。 – Squonk
確かに、小切手を持っているのが良い習慣です。私は、アプリが再開するたびに人々が新しいリソースを作成する印象を得られなかったことを確認していました。 – Mimminito
onResumeメソッドが実際に意図したとおりに呼び出された場合は、ログでチェックしましたか? – dan
コードを共有してくださいListaAdapter – Blackbelt