1

次の問題があります。

私は2つのタブを持つtabActivityにいます。すべてのタブは同じアクティビティを起動しますが、onTabChangeListener があります。このタブ変更リスナーでは、アクティビティごとに異なるリストビュー アダプターを設定する必要があります。したがって、2 つの異なるリストがあり、この onTabchangeListener から、TabActivity からアダプターを変更したいのですが、次のエラーが発生します: system services not available to activities before oncreate() タブのコードは次のとおりです。

  host = getTabHost();

    host.addTab(host.newTabSpec(TAG_AVAILABLE).setIndicator("First Tab")
            .setContent(new Intent(this, MyActivity.class)));
    host.addTab(host.newTabSpec(TAG_DOWNLOAD).setIndicator("Second Tab ")
            .setContent(new Intent(this, MyActivity.class)));
    host.setOnTabChangedListener(new TabHost.OnTabChangeListener() {
        @Override
        public void onTabChanged(String s) {
            MyActivity myActivity = new MyActivity();
            int i = getTabHost().getCurrentTab();
            if (i == FIRST_TAB) {
                setAdapterForMyActivity(firstAdapter);       
            }
            }
            if (i == SECOND_TAB) {
                 setAdapterForMyActivity(secondAdapter);        
            }
            }
        }
    });

}

主な質問は、TabActivity からのアクティビティにある listView のアダプターを設定する方法です。どうもありがとうございました。

4

1 に答える 1

2

Adapter を子アクティビティに渡したい場合は、何らかのグローバル共有オブジェクトが必要です。1 つのオプションは、アダプタを親 TabActivity の Application オブジェクトに渡し、それを子アクティビティで取得することです。

于 2012-04-12T07:31:04.227 に答える