1

私はAndroidで次のように定義されたTabListenerを持っています:

public static class TabListener<T extends Fragment> 
    implements ActionBar.TabListener { ... }

私はこのソースコードを持っています:

Tab myTab = myActionBar.
                newTab().
                setText("Home").
                setTabListener(new TabListener<MyFragment>(
                    this, 
                    "Home", 
                    MyFragment.class
                ));
...

今、私はこれをメソッドに入れたいと思います:

addTab("Home", ???);

private void addTab(String text, ???) {
    Tab myTab = myActionBar.
                newTab().
                setText(text).
                setTabListener(new TabListener<???>(
                    this, 
                    text, 
                    ???.class
                ));
    ...
}

代わりに何を記入する必要があり???ますか?

4

3 に答える 3

5

タブ リスナーは、タイプ パラメータをサブクラスにする必要があります。Fragment

public static class TabListener<T extends Fragment>

したがって、コードでそれが当てはまることを確認する必要があります

addTab("Home", ???);

private <T extends Fragment> void addTab(String text, Class<T> clazz) {
    Tab myTab = myActionBar.
                newTab().
                setText(text).
                setTabListener(new TabListener<T>(
                    this, 
                    text, 
                    clazz
                ));
    ...
}
于 2013-02-28T17:54:50.613 に答える
3
addTab("Home", MyFragment.class);

private void addTab(String text, Class<? extends Fragment> clazz) {
    Tab myTab = myActionBar.
            newTab().
            setText(text).
            setTabListener(new TabListener<>(
                this, 
                text, 
                clazz
            ));
    ...
}
于 2013-02-28T17:49:47.613 に答える
2

このようなものは、おそらくあなたが探しているものです:

private <T> void addTab(String text, Class<T> clazz) {
    Tab myTab = myActionBar.
            newTab().
            setText(text).
            setTabListener(new TabListener<T>(
                this, 
                text, 
                clazz
            ));
    ...
}
于 2013-02-28T17:25:41.247 に答える