繁体   English   中英

错误:(31,40)错误:不兼容的类型:android.support.v4.app.Fragment无法转换为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.Fragmentandroid.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM