Я искал, и я знаю, что некоторые люди недовольны использованием действий в пределах вкладок, но переходя мимо этого ... как я могу перезапустить вкладку, пока сохраняю все вкладки? У меня есть активность на вкладке, я использую это меню для создания нового действия для обновления отображаемой информации о вкладке, когда я возвращаюсь из операции меню, я хочу, чтобы новая информация отображалась в действии вкладки. Я использую startActivityForResult() из меню, но когда я возвращаюсь и пытаюсь перезапустить активность ... он вытирает вкладки выше (я думаю, как и ожидалось, но я хочу повторно запустить обновленную активность на вкладке) ,Android: Как перезапустить активность в табусте?
Создание закладки:
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;
}
}
}
Hah, привет "некоторые люди". Я на самом деле специально думал о вас, когда писал это, поскольку ваши сообщения - это те, с которыми я столкнулся (спасибо, кстати, за все знания, которыми вы делитесь со всеми). Поэтому я прокомментировал еще один ответ, который далее объясняет, что я пытаюсь сделать. Я еще не настолько хорош в терминологии, но считаю, что я использую представление в своей деятельности ... Я думаю: protected void onCreate (Bundle savedInstanceState) { super.onCreate (savedInstanceState); setContentView (R.layout.hometab); TextView name = (TextView) findViewById (R.id.home_name); и т. д. Любой способ обновления этих объектов? –
Думаю, у меня это есть. В возврате onActivityResult() я могу просто обновить поля Textview, просто запросив базу данных и обновив Textview, используя .setText(). Просто ... жаль, что я этого не видел. –