こんにちは私は、ログイン後に、リストビューを含む3つのタブを持つタブホストを含むメインアクティビティを読み込みます。各タブは、sqlite +カスタムアダプタを介して生成されます。データベースは、最初にxmlデータ(sqliteデータベースに非同期に同期される)を介して生成されます。親アクティビティからリフレッシュタブリストビュー
私の問題: sqliteデータベースをXMLデータで手動で同期させて、現在のタブリストビューを更新できるようにします。私はデータベースのバックグラウンド更新を行うためにうまく動作する非同期スレッドを持っています。私が把握できないのは、現在のタブのリストビューを強制的に更新する方法です。問題は、親アクティビティからtabhost内のサブアクティビティにアクセスする方法がわかりません。
notifyDataSetChanged()が必要ですが、これを行うにはタブのアクティビティ>アダプタにアクセスする方法を理解できません。 notifyDataSetChanged()を呼び出すためにサブアクティビティアダプタにアクセスするにはどうすればよいですか?親(包含)アクティビティには、タブホストのリストビューを更新するためのボタンがあります。
代替手段:バックグラウンドスレッドのonPostExecute()コールバックからインテントをブロードキャストしようとする可能性があります。つまり、xmlデータを使ってデータベースを更新すると、タブがブロードキャストを受信し、notifyDataSetChanged()を介してリフレッシュするようトリガーします。これはおそらくブロードキャスト/受信インテントの設計方法ではありませんか?すなわち、アクティビティと含まれているタブのリストビューアクティビティ間の通信?
これはスタックオーバーフローに関する2番目の投稿です。私の説明ではっきりしていれば幸いです。私はこの問題に取り組んで以来、久しぶり :あなたは
EDIT(16-JAN-2012)を提供することができます任意のヘルプやアドバイスをありがとう。私はもともと、インテントをブロードキャストし、それを子アクティビティで消費するソリューションを使用しました。しかし、私は以来、多くの人から助言を受けてきました。代わりにタブ内のアクティビティを使用して停止しました。私は今、タブ内のビューを使用しています。これははるかに優れたクリーナーです。
コードが煩雑になるのを除けば、縦横比から回転を外したときにも、アクティビティ間を移動するときに「データベースが閉じられていません」というタイプのエラーが発生していました。アクティビティではなくタブ内のビューで多くの問題が修正されました。
しかし、タブビュー内でリストビューをどのように更新しましたか? – Shrikant