错误的第二个参数类型。必需:“ android.support.v4.app.Fragment”

时间:2018-07-08 15:45:19

标签: java android android-fragments

我收到的错误是: 第二辩驳类型错误。找到:“ com.example.appname.MainmenuFragment”,必需:“ android.support.v4.app.Fragment” 顺便说一句,我知道有人问过类似的问题,但是这种情况略有不同,因为此代码是在MainmenuActivity中编写的,它是一个活动而不是一个片段,而MainmenuFragment是一个顾名思义的片段。今天早上工作了。我今天进行了很多探索,但最终遇到了这个异常错误。这是我收到错误的代码:

public class MainmenuActivity extends AppCompatActivity {


    private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
            = new BottomNavigationView.OnNavigationItemSelectedListener() {

        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
            FragmentTransaction transaction = fragmentManager.beginTransaction();
            switch (item.getItemId()) {
                case R.id.navigation_mainmenu:
                    transaction.replace(R.id.container, new MainmenuFragment()).commit();
                    return true;
}
return false;
};

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_mainmenu);

        BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
        navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);

        android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction transaction = fragmentManager.beginTransaction();
        transaction.replace(R.id.container, new MainmenuFragment()).commit();

    }}

线

transaction.replace(R.id.container, new MainmenuFragment()).commit();

transaction.replace(R.id.container, new MainmenuFragment()).commit();

是我得到错误的地方。老实说,如果我尝试使用其他片段文件而不是Mainmenu_Fragment,它将可以很好地工作。

2 个答案:

答案 0 :(得分:1)

您可能在android.app.Fragment中使用android.support.v4.app.Fragment而不是MainmenuFragment

答案 1 :(得分:1)

问题可能是由于getSupportFragmentManager()引起的。尝试将其更改为getFragmentManager()