Android: Как динамически изменять раздутое содержимое вкладки? - PullRequest
5 голосов
/ 23 июня 2011

У меня проблемы с настройкой содержимого на вкладке, которую я накачал из файла XML.

Я добавляю вкладку в свой TabHost ('tabs') динамически, выполняя следующее:

        TabSpec passSpec = tabs.newTabSpec("Pass Tab"); 
        passSpec.setIndicator("Passengers", getResources().getDrawable(R.drawable.tab_message));

        passSpec.setContent(new TabHost.TabContentFactory() { 
            public View createTabContent(String tag) { 
                View layout = mInflater.inflate(R.layout.tab_content_passengers, null);                 
                return(layout); 
            } 
        });
        tabs.addTab(passSpec);

Это работает нормально ... у меня проблемы с изменением содержимого этой вкладки позже.Есть ли способ сделать это без повторного надувания всех вкладок новыми макетами?

Я пытаюсь сделать следующее, и ничего не происходит:

    mInflater = LayoutInflater.from(this);
    View layout = mInflater.inflate(R.layout.tab_content_passengers, null);
    TextView t = (TextView) layout.findViewById(R.id.testText);
    t.setText("Hello world??");

Ответы [ 2 ]

4 голосов
/ 23 июня 2011

Вы можете сохранить ссылку на переменную layout (может быть, на карте или что-то в этом роде), а затем программно изменить ее позже следующим образом:

tabMap.get(tabId).findViewById(R.id.testText).setText("The text is changed now!");

Пока вы делаете это в интерфейсе пользователянить изменения должны быть отражены немедленно.

0 голосов
/ 23 июня 2011

Попробуйте сделать

t.invalidate();

Это должно заставить его перерисовать

...