5

XML ファイルから膨張させたタブにコンテンツを設定するのに問題があります。

次のようにして、タブを TabHost (「タブ」) に動的に追加します。

        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??");
4

2 に答える 2

4

変数への参照をlayout(おそらくマップなどで)保持し、後で次のようにプログラムで変更できます。

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

UI スレッドで行う限り、変更はすぐに反映されます。

于 2011-06-22T20:48:22.910 に答える
0

やってみる

t.invalidate();

これにより、強制的に再描画されるはずです

于 2011-06-22T20:47:52.817 に答える