@peacock
HTML/CSS, JS, PHP, JAVA, C#, Ubuntu

Как обновить содержимое вкладки в TabHost?

Добрый день!
Как обновить содержимое вкладки в TabHost, кликая по названиям? Я уже отследил клик на вкладку и могу "навесить" событие и определить тег вкладки, но не понимаю, как обновить её содержимое. tabHost.removeViewAt(0) - удаляет вкладку 0, и необходимо снова её создавать и "навешивать" событие, что не совсем правильно. При переключении между вкладками содержимое обновляется, благодаря флагу Intent.FLAG_ACTIVITY_CLEAR_TOP.
Пример кода:
int numberOfTabs = tabHost.getTabWidget().getChildCount();
        for(int n=0; n<numberOfTabs; n++) {
            tabHost.getTabWidget().getChildAt(n).setOnTouchListener(new View.OnTouchListener() {
                @SuppressLint("LongLogTag")
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    if (event.getAction() == MotionEvent.ACTION_UP) {
                        String currentSelectedTag = tabHost.getCurrentTabTag();
                        for(int l=0; l<tabHost.getTabWidget().getChildCount(); l++) {
                            View f = tabHost.getTabWidget().getChildTabViewAt(l);
                            TextView tv1 = (TextView) f.findViewById(R.id.textView1);
                            tv1.setTypeface(Typeface.DEFAULT);
                            tv1.setTextColor(Color.parseColor("#bdbdbd"));
                            tv1.setBackgroundResource(android.R.color.transparent);
                        }
                        TextView tv = (TextView) v.findViewById(R.id.textView1);
                        tv.setTypeface(Typeface.DEFAULT_BOLD);
                        tv.setTextColor(Color.parseColor("#ffffff"));
                        tv.setBackgroundResource(R.drawable.edittext_bg);
                        Log.d("@@@@@@@@@@ onClick", "onClick tab "+v.getTag());// v.getTag() - тег вьюхи текущей вкладки
// где-то здесь нужно обновить текущий intent
                    }
                    return false;
                }
            });
        }


Уже перерыл весь стак, не могу ничего подобного найти. Какие есть соображения?
  • Вопрос задан
  • 311 просмотров
Пригласить эксперта
Ответы на вопрос 1
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
Есть соображения. Не использовать такое древнее дерьмо мамонта как TabHost.

Кстати, вместо Color.parseColor("#ffffff") можно писать 0xffffff. И лучше такие вещи в стили/константы выносить как минимум.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы