片段管理器事务错误的参数类型

我正在处理带有两个不同片段的导航抽屉。不起作用的是下面的java文件中的“ first”和“ second”fragmentManager.beginTransaction().replace(R.id.fragment, first).commit();以及另一行中的“ ”和“ ” 。它引发的错误是:


Wrong 2nd argument type. Found: 'com.example.name_of_app.First', required: 'android.support.v4.app.Fragment' 


replace

(int,

android.support.v4.app.Fragment)

in FragmentTransaction cannot be applied

to

(int,

com.example.name_of_app.First)

 

引发问题的 MainActivity.java 文件部分:


public boolean onNavigationItemSelected(MenuItem item) {

        // Handle navigation view item clicks here.

        int id = item.getItemId();


        if (id == R.id.nav_camera) {

            setTitle("First Fragment");

            First first = new First();

            FragmentManager fragmentManager = getSupportFragmentManager();

            fragmentManager.beginTransaction().replace(R.id.fragment, first).commit();

        } else if (id == R.id.nav_gallery) {

            setTitle("Second Fragment");

            Second second = new Second();

            FragmentManager fragmentManager = getSupportFragmentManager();

            fragmentManager.beginTransaction().replace(R.id.fragment, second).commit();


        } 

这是 First.java 片段


import android.os.Bundle;

import android.app.Fragment;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;



/**

 * A simple {@link Fragment} subclass.

 */

public class First extends Fragment {



    public First() {

        // Required empty public constructor

    }



    @Override

    public View onCreateView(LayoutInflater inflater, ViewGroup container,

                             Bundle savedInstanceState) {

        // Inflate the layout for this fragment

        return inflater.inflate(R.layout.fragment_first, container, false);

    }

}

尚方宝剑之说
浏览 192回答 1
1回答

慕的地10843

如果您查看错误,您会看到android.support.v4.app.Fragment. 但是,您的课程First具有import android.app.Fragment;导入功能。他们不匹配。将导入更改为import android.support.v4.app.Fragment;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java