错误是“绑定不匹配:UserSettingsFragment类型不是TabListener类型的有界参数的有效替代”,它出现在UserSettingsFragment
的参数化上。
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedBundleInstance) {
super.onCreate(savedBundleInstance);
// Set up the action bar.
final ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
Tab tab1 = actionBar.newTab().setText("One");
tab1.setTabListener(new TabListener<UserSettingsFragment>(this, "UserSettingsFragment", UserSettingsFragment.class));
actionBar.addTab(tab1);
//actionBar.addTab(settingsTab);
}
}
以下是相关的班级签名:
public class TabListener<T extends Fragment> implements ActionBar.TabListener {...}
private class FacebookFragment extends Fragment {...}
public class UserSettingsFragment extends FacebookFragment {...}
请注意,Facebook SDK中的FacebookFragment是包私有,因此“不打算被外部应用程序使用”。是否有某种规则不允许在此实例中参数化正确子类的子类?
谢谢!