2010-11-27 4 views
2

この質問は、BaseAdapterからnotifyDataSetChanged()メソッドを使用することを推奨します。基になるデータが変更されたときにビューの表示を更新する

アプリケーションでアダプタを使用しないときにリフレッシュする方法はありますか?私は、プリファレンスでいくつかのアクティビティを使用するシンプルなアプリケーションと、テキストビューとボタンによる相対レイアウトを持っています。現時点では、SimpleAdapterやArrayAdapter、CursorAdapterなどのアダプタは使用していません。私の場合、notifyDataSetChanged()を使用するためにそれらの1つを作成する必要があるようですか?私には簡単な方法はありませんか?

答えて

2

が見えます。彼らはActivity(またはより良い - ListActivityの内部)の内のListViewと働くことが期待されます。 ListViewを使用しないと、これらの紙幣はおそらくあなたに役に立たないでしょう。

あなたのデータは何らかの形で保存されているとします(SharedPreferencesまたはファイル)。そのため、アクティビティを開始すると、データを読み込んでビューに移入するだけです。この場合、余分なものは必要ありません。現在表示されているアクティビティのデータをリロードする必要がある場合は、永続ストレージからデータを再読み込みしてビューを再投入するだけです。

+0

私はSharedPreferencesを使用します。私は画面を表示するアクティビティを持っています。私はアラームを設定し、それが消え、サービスが開始され、サービスは画面上部の新しいアクティビティでアラームダイアログを開始します。ダイアログボックスが消えるようにするには、OKをクリックします。消えると、元の画面に戻りますが、元の画面はそのまま残り、変更はありません。私は、元の画面上の文字列を変更する必要があるのは、ユーザーが何をしたかである。私はもう一度画面全体を作成する必要がありますね? – mlw

+0

@MLW - OK、ここにアプローチがあります。あなたのビュー(元の画面)をリフレッシュしたい 'Activity'では、SharedPreferencesからデータを読み直し、' Activity.onResume() 'のビューを再作成する必要があります。 –

+0

偉大な答え、それは、ありがとう、働く。 – mlw

0

データが変更され、ビューを更新する必要がある場合、データは実際どのように変化しますか?別のスレッドに入っているのですか、定期的に何かをしたいのですか(RSSフィードなどをポーリングしてください)? SimpleAdapterArrayAdapterまたはCursorAdapterを - あなたはこれらのクラスの目的をキャッチしていない(私は誤解されてもよいが、それは本当にのように見える)のように

0

私も同様の問題がありました。私はラジオ・グループを持っていて、各ラジオ・ボタンにはラベルが付きました。画面が回転したとき、同じIDを持つラジオ・グループ&ラジオ・ボタンとは異なるレイアウトを使用しました。私はonCreate()でsetContentView()を呼び出していました。回転後、 "古い"ラベルが新しいレイアウト(奇妙な)に表示されます。 setContentView()をonResumeに移動すると、すべてがokに更新されるようです。上の彼の答えArhimedに感謝します。

関連する問題