検索したところ、タブ内でアクティビティを使用することに眉をひそめている人もいるようですが、それを過ぎて...タブを表示したままタブ付きアクティビティを再開するにはどうすればよいですか? タブにアクティビティがあり、メニューを使用して新しいアクティビティを作成し、タブのアクティビティに表示される情報を更新します。メニュー アクティビティから戻ったときに、新しい情報をタブのアクティビティに表示したいと考えています。メニュー選択から startActivityForResult() を使用していますが、戻ってアクティビティを再起動しようとすると...上のタブが消去されます(予想通りだと思いますが、タブ内で更新されたアクティビティを再起動したい) .
タブの作成:
TabHost host = getTabHost();
Intent home_intent = new Intent(constants.HOME_ACTION,
null, this, homeTab.class);
Intent inbox_intent = new Intent(constants.INBOX_ACTION,
null, this, inboxTab.class);
Intent stats_intent = new Intent(constants.STATS_ACTION, null,
this, infoTab.class);
host.addTab(host.newTabSpec(constants.HOME_TAG)
.setIndicator(getText(R.string.home_label),
getResources().getDrawable(R.drawable.icon))
.setContent(home_intent));
host.addTab(host.newTabSpec(constants.INBOX_TAG)
.setIndicator(getText(R.string.inbox_label),
getResources().getDrawable(R.drawable.icon))
.setContent(inbox_intent));
host.addTab(host.newTabSpec(constants.STATS_TAG)
.setIndicator(getText(R.string.stats_label),
getResources().getDrawable(R.drawable.icon)).setContent(
stats_intent));
タブのアクティビティのメニュー アクティビティから戻る (データベース情報の更新):
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode) {
case (constants.ACTIVITY_REQUEST_CODE_UPDATE_PROFILE) : {
if (resultCode == Activity.RESULT_OK) {
boolean profileUpdated = data.getBooleanExtra(constants.ACTIVITY_BUNDLE_UPDATE_PROFILE, false);
Log.d(LOG_TAG, "activity returned with " + profileUpdated);
// Check to see if we updated our profile to refresh the screen
if(profileUpdated == true){
// Refresh the screen with the new info
homeTab.this.finish();
this.startActivity(getIntent());
}
}
break;
}
}
}