Fragment를 만들다 보면 간혹가다 이런 오류를 만날 수 있다.



보통 이런 경우는 


Fragment를 호출하는 Activity에서는 android.app.FragmentManager를 사용하고 있는데 


Fragment는 android.support.v4.app.Fragment;로 import 되어 있는 경우이거나 반대일 가능성이 크다.



1. V4 라이브러리를 쓸 경우


Fragment에 v4를 import 해주고

import android.support.v4.app.Fragment;
public class ItemFragment extends Fragment {}

Fragment를 사용할 액티비에서는 다음과같이 정의해주면 된다.

import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

FragmentManager fm = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fm.beginTransaction();
fragmentTransaction.replace(R.id.fragment_test, ItemFragment.newInstance("d"));
fragmentTransaction.commit();
}
}

2. V4를 쓰지 않을 경우


Fragment import를 다음과 같이 해주고

import android.app.Fragment;
public class ItemFragment extends Fragment {}

Fragment를 사용할 액티비에서는 다음과같이 정의해주면 된다.


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

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

FragmentManager fm = getFragmentManager();
FragmentTransaction fragmentTransaction = fm.beginTransaction();
fragmentTransaction.replace(R.id.fragment_test, ItemFragment.newInstance("d"));
fragmentTransaction.commit();
}
}


728x90
반응형

+ Recent posts