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
반응형