Я читал много комментариев о том, как более просто использовать представления вместо намерений в setContent
при использовании вкладок.
Поскольку я буду создавать приложение с вкладками, я пытаюсьреализовать это вместо того, чтобы иметь намерения внутри setContent
.Однако мне трудно найти примеры или простые уроки по замене текущего представления на другое.
Скажем, у меня есть TAB_A, с некоторыми полями ввода и кнопкой.Когда пользователь нажимает на кнопку, TextView
будет отображать «Привет, пользователь!»в том же TAB_A.Конечно, это упрощенный пример, но он наверняка укажет мне правильное направление.
РЕДАКТИРОВАТЬ: У меня есть вкладка с именем TAB_A с кнопкой в нем.Если пользователь нажимает на эту кнопку, TAB_A теперь будет отображать «Привет, пользователь!»вместо кнопки.
Вот пример моего TabSpec.
TabHost.TabSpec spec = tabHost.newTabSpec(getString(R.string.tabspec_tag_search))
.setIndicator(getString(R.string.tabspec_indic_search),
res.getDrawable(R.drawable.tab_ic_search))
.setContent(new TabContentFactory() {
@Override
public View createTabContent(String tag) {
switch (doWhat){
case ACTIVITY_SPLASH_PAGE:
return showButton;
case ACTIVITY_HELLO:
return showHello;
}
return null;
}
});
tabHost.addTab(spec);
Где ShowButton
и ShowHello
- классы, оба расширяющие LinearLayout
.Оба инициализируются в onCreate следующим образом: ShowButton showButton = new ShowButton(this);
Внутри класса showButton у меня есть прослушиватель:
viewHolder.button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(context, Search247.class);
intent.putExtra(EXTRA_DO_WHAT, ACTIVITY_HELLO);
context.startActivity(intent);
}
});
Когда приложение запускается впервые, пользователь видит представление showButton.Когда пользователь нажимает на кнопку, я хочу, чтобы вкладка изменила свое содержимое на showHello.
Тогда возникает вопрос: есть ли способ обновить содержимое tabspec без использования startActivity
?
Спасибо как всегда!