![](/img/trans.png)
[英]Cannot convert from android.support.v4.app.Fragment to android.app.Fragment
[英]Error:(31, 40) error: incompatible types: android.support.v4.app.Fragment cannot be converted to android.app.Fragment
我在这段代码中有问题,我不知道应该使用android.support.v4.app.Fragment还是android.app.Fragment;
public class MainActivity extends AppCompatActivity {
private SharedPreferences pref;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
pref = getPreferences(0);
initFragment();
}
private void initFragment(){
android.support.v4.app.Fragment fragment;
if(pref.getBoolean(Constants.IS_LOGGED_IN,false)){
fragment = new ProfileFragment();
}else {
fragment = new LoginFragment();
}
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.fragment_frame,fragment);
ft.commit();
}
}
不要将android.support.v4.app.Fragment与android.app.Fragment不匹配,在整个应用程序中使用其中任何一个。
private void initFragment(){
android.support.v4.app.Fragment fragment;
if(pref.getBoolean(Constants.IS_LOGGED_IN,false)){
fragment = new ProfileFragment();
}else {
fragment = new LoginFragment();
}
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.fragment_frame,fragment);
ft.commit();
}
要么
private void initFragment(){
android.app.Fragment fragment;
if(pref.getBoolean(Constants.IS_LOGGED_IN,false)){
fragment = new ProfileFragment();
}else {
fragment = new LoginFragment();
}
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.fragment_frame,fragment);
ft.commit();
}
因此,如果您使用的是支持库,请使用getSupportFragmentManager(),并且它支持与支持库相关的其他方法,或者对于Android应用程序片段的使用,请不要使用支持库功能。 它将产生“类型不匹配”的问题。 强烈建议这样做。
支持库导入以进行片段事务:
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
Android库导入的片段交易:
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.