Как обновить TabSpec

1

У меня 3 вкладки содержат различное содержимое. Они загружают контент из Интернета. Для этого я использую 3 AsyncTasks. В начале 3 вкладки показывают 3 ProgressBar. Я хочу, чтобы каждый раз, когда одна задача заканчивалась, она обновляет TabSpec и скрывает ProgressBar. Проблема в том, что я не знаю, как обновить спецификацию табуляции.

Это мой фрагмент, чтобы создать TabHost в начале.

    final List<View> containerList = new ArrayList<View>();
    for(int i = 0; i < 4; ++i) {
        final LinearLayout layout = new LinearLayout(this);
        final ProgressBar progressBar = new ProgressBar(this);
        progressBar.setVisibility(View.VISIBLE);
        layout.addView(progressBar);            
    }

    // Prepare labels and icons.        
    final List<String> tabLabels = Arrays.asList(getResources().getStringArray(R.array.destination_tab_labels));       
    // TODO Prepare icons here later.

    // Populate tabs' contents.
    final TabHost tabHost = getTabHost();
    for(final String label : tabLabels) {
        final TabSpec tab = tabHost.newTabSpec(label);
        tab.setContent(new TabContentFactory() {
            @Override
            public View createTabContent(final String tag) {
                // Return ListView here later.
                return containerList.get(i++);
            }
        });
        //TODO Add icon here later.
        tab.setIndicator(label);
        tabHost.addTab(tab);
    }
Теги:

1 ответ

1
Лучший ответ

создайте 3 действия со своим содержимым, AsyncTask и progressbar. Для любой деятельности по завершении задачи она обновит свой контент и скроет панель прогресса.
Добавьте эти 3 действия в хост вкладки, как:

TabHost host = getTabHost(); 
host.addTab(host.newTabSpec("one").setIndicator("TAB1").setContent(new Intent(this, MyActivity1.class)));
host.addTab(host.newTabSpec("two").setIndicator("TAB2").setContent(new Intent(this, MyActivity2.class)));
host.addTab(host.newTabSpec("two").setIndicator("TAB2").setContent(new Intent(this, MyActivity3.class)));
  • 0
    Я это сделал! Спасибо! После многих часов реализации вашей идеи, я сделал это! Моя вкладка довольно сложная. Сначала я запускаю AsyncTask для получения категорий из PHPAPI, затем запускаю 3 Activity, как вы сказали. В каждом действии я реализую ProgressBar, запускаю AsyncTask, чтобы получать его содержимое и из PHPAPI. Это абсолютно независимо! Легко и чисто!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню