我在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
));
...
}
我必须填写什么而不是???
?
答案 0 :(得分:5)
您的标签监听器需要将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
));
...
}
答案 1 :(得分: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
));
...
}
答案 2 :(得分:2)
这样的事情可能就是你要找的东西:
private <T> void addTab(String text, Class<T> clazz) {
Tab myTab = myActionBar.
newTab().
setText(text).
setTabListener(new TabListener<T>(
this,
text,
clazz
));
...
}