インテント。このアクティビティから、このリストに何かを追加するアクションを実行できます(アクティビティB)。TabActivityパスエキストラは、私は3つのアクティビティを持って
アクティビティB - これは、ウェブサイトにデータを追加するアクティビティです。このアクティビティが正常に完了すると、アクティビティAにそのリストをリフレッシュするよう指示する必要があります。
活動T - アクティビティA.が含まれていTabHost
私の問題がある:Bをリフレッシュするために活動Aを通知する必要がありますが、私はしたいので、その意図は、活動Tでなければなりません
活動
0123:TabHostは私が仲介者としてTabHostを使用し、ちょうど彼らがそうのように、設定された場合のアクティビティAに至るまでのエキストラを渡すと考えていた活動A.//ActivityB.class
Intent myIntent = new Intent(v.getContext(), ActivityT.class);
myIntent.putExtra("target", "ActivityA");
myIntent.putExtra("refreshData", true);
startActivityForResult(myIntent, 0);
を表示します
//ActivityT.class
Bundle extras = getIntent().getExtras();
// Create an Intent to launch an Activity for the tab (to be reused)
intent = new Intent().setClass(this, ActivityA.class);
// Check to see if we want to pass our bundle through to the activity
if (extras != null && extras.getString("target").equals("activityA")) {
intent.putExtras(extras);
}
// Initialize a TabSpec for each tab and add it to the TabHost
spec = tabHost.newTabSpec("Tab1").setIndicator("Tab1",
res.getDrawable(R.drawable.ic_tab_tab1)).setContent(intent);
tabHost.addTab(spec);
これは、タブを別のタブに変更して元に戻すと、エクストラがもう一度やり直されるということを除いて、素晴らしいことです。これは、TabActivityがタブ変更時に再作成されず、したがってエキストラが常に子インテントに渡されるためです。
アクティビティAのみにアクティビティBからリフレッシュするように指示できますが、それでも表示するにはTabHostが表示されますか?
ブロードキャストを使用します。 – Falmarri
このような小さな仕事のために放送は少し重労働ではありませんか?彼らは通常、他のアプリやサービスによって放送されたイベントや意図を聞くのに使われていませんか? –