프로그래밍 방식으로 레이아웃을 구현하는 활동에 Fragment를 추가하고 싶습니다. Fragment 문서를 살펴 보았지만 필요한 것을 설명하는 예제는 많지 않습니다. 내가 작성하려고 한 코드 유형은 다음과 같습니다.
public class DebugExampleTwo extends Activity {
private ExampleTwoFragment mFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FrameLayout frame = new FrameLayout(this);
if (savedInstanceState == null) {
mFragment = new ExampleTwoFragment();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.add(frame.getId(), mFragment).commit();
}
setContentView(frame);
}
}
...
public class ExampleTwoFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState) {
Button button = new Button(getActivity());
button.setText("Hello There");
return button;
}
}
이 코드는 컴파일되지만 시작시 충돌합니다. 아마도 내 FragmentTransaction.add()
것이 올바르지 않기 때문일 것 입니다. 이를 수행하는 올바른 방법은 무엇입니까?
ft.add(android.R.id.content, newFragment)
. 프래그먼트 컨테이너가 액티비티의 컨텐츠 뷰가 아닌 경우 사용자 정의 레이아웃을 생성하고 ID를 설정하면됩니다.