我在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
                ));
    ...
}


我必须填写什么而不是???

最佳答案

您的标签页侦听器需要将type参数作为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
                ));
    ...
}

09-25 21:37