用其他片段替换片段会出错

时间:2017-04-17 17:10:00

标签: java android android-fragments android-fragmentactivity

以下是我的代码,它在替换片段部分给出错误,它说找到的参数是android.support.v4.app.fragment,其中需要android.app.fragment告诉我什么是我的代码中的错误,因为我我是新手,因此无法完成问题

package com.example.xainshah.fragmentexample;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;


import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.support.v4.app.Fragment;
import android.view.View;
import layout.Fragment1;
import layout.Fragment2;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    public void ChangeFragment(View view){

        Fragment fragment;
        if (view == findViewById(R.id.button)){
            fragment= new Fragment1();
            FragmentManager fm=getFragmentManager();
            FragmentTransaction ft=fm.beginTransaction();
            ft.replace(R.id.fragment_place,fragment); \\ Error is here 2nd argument is not compatible that's what the error says 
        }

        if (view == findViewById(R.id.button)){
        fragment= new Fragment2();
            FragmentManager fm=getFragmentManager();
            FragmentTransaction ft=fm.beginTransaction();
            ft.replace(R.id.fragment_place,fragment); \\ Error is here 2nd argument is not compatible that's what the error says 
        }
        }
    }

2 个答案:

答案 0 :(得分:0)

您必须使用支持片段管理器

FragmentManager fm=getSupportFragmentManager();

而不是

FragmentManager fm=getFragmentManager();

同样也删除了带有支持片段管理器的片段管理器的import语句。

答案 1 :(得分:0)

除了使用" getSupportManager"如@passiondroid所述,您正在使用

import android.app.FragmentManager;
import android.app.FragmentTransaction;

您应该使用支持库:

import android.support.v4.app.FragmentManager;
android.support.v4.app.FragmentTransaction;