2010-08-20 2 views
0

Я читал много комментариев о том, как использовать слайды, а не намерения в setContent при использовании вкладок.Изменить содержимое вкладки на кнопке

Поскольку я буду создавать приложение с вкладками, я пытаюсь реализовать это вместо намерений внутри setContent. Тем не менее, мне сложно найти примеры или простые руководства по замене текущего представления другим.

Скажем, у меня TAB_A, с некоторыми полями ввода и кнопкой. Когда пользователь нажмет на кнопку, на дисплее появится TextView «Привет, пользователь!». в той же TAB_A. Конечно, это упрощённый пример, но он обязательно укажет мне в правильном направлении.

EDIT: У меня есть вкладка 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?

Спасибо, как всегда!

+1

Возможно, это только я, но неясно, каков ваш вопрос или проблема. – DonSteep

+0

Я понятия не имею, что вы хотите. Некоторые примеры кода для создания экрана вкладки? Наши мысли по вопросу о намерениях? То, что TextView уверенно смутило меня. – Maragues

ответ

1

Найдено ответ:

ViewGroup viewGroup = (ViewGroup) mView.getParent(); 
viewGroup.removeView(mView); 
addView(showResults); 

Где mView является первоначальный вид на вкладке. Теперь просто пытаюсь выяснить, как сделать приложение, чтобы показать mView, когда BACK нажата из нового представления.

+0

отличное решение! Я искал его на века ..! – Renjith

 Смежные вопросы

  • Нет связанных вопросов^_^