Android 通用方法赢得';当将泛型类型作为参数传递时,无法识别它
我正在尝试泛化动态片段实例化:Android 通用方法赢得';当将泛型类型作为参数传递时,无法识别它,android,generics,Android,Generics,我正在尝试泛化动态片段实例化: private <F extends Fragment> void addFragment(F fragment) { fragment.setArguments(new Bundle()); FragmentTransaction tx = getFragmentManager().beginTransaction(); tx.add(R.id.container, fragment); tx.submit(); }
private <F extends Fragment> void addFragment(F fragment) {
fragment.setArguments(new Bundle());
FragmentTransaction tx = getFragmentManager().beginTransaction();
tx.add(R.id.container, fragment);
tx.submit();
}
private void addFragment(F fragment){
fragment.setArguments(新Bundle());
FragmentTransaction tx=getFragmentManager().beginTransaction();
tx.add(R.id.container,fragment);
tx.提交();
}
但是,编译器拒绝tx.add(R.id.container,fragment)
,因为add(int,F)
没有方法签名
如何让add()方法理解F确实是一个片段
提前感谢:)这是因为您在类中导入了错误的
片段,它与add方法的Fragment参数不兼容
由于您使用了getFragmentManager()
,这意味着您需要使用片段的非支持库,以使泛型与add方法兼容
确保您的导入如下所示:
import android.app.Fragment;
谢谢何时、何时使用非支持库是一个好主意?取决于您是否针对较新的设备,然后使用非支持库;否则,如果针对较旧的设备,则使用支持库