버튼 클릭으로 FragmentTransaction 으로 화면 전환을 하는데요.
버튼을 2번 눌러야 화면이 전환됩니다.
그래서 화면전환 switch문에 toast문을 넣어보았더니
첫번째 클릭에는 toast가 안나오고, 두번째 클릭에만 toast가 나오면서 화면이 전환되더라구요.
소스에서 잘못된 점 지적 부탁 드립니다.
public class Menu1Fragment extends Fragment {
Button mBtnCategory, mBtnDetail;
FragmentManager fm;
FragmentTransaction tran;
Menu1FragmentCategory fragmentCategoryFrag;
Menu1FragmentDetail fragmentDetailFrag;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_menu1, container, false);
//FrameLayout 화면 전환
mBtnCategory = (Button)v.findViewById(R.id.categorySelectButton);
mBtnDetail = (Button)v.findViewById(R.id.detailSelectButton);
mBtnCategory.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setFragment1Frag(0);
}
});
mBtnDetail.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setFragment1Frag(1);
}
});
fragmentCategoryFrag = new Menu1FragmentCategory();
fragmentDetailFrag = new Menu1FragmentDetail();
//FrameLayout 초기상태
setFragment1Frag(0);
return v;
}
public void setFragment1Frag(int index){
fm = getFragmentManager();
tran = fm.beginTransaction();
switch (index){
case 0:
Toast.makeText(getActivity(), "index 0", Toast.LENGTH_LONG).show();
tran.replace(R.id.fragment_menu1_frame, fragmentCategoryFrag);
tran.addToBackStack(null);
tran.commit();
break;
case 1:
Toast.makeText(getActivity(), "index 1", Toast.LENGTH_LONG).show();
tran.replace(R.id.fragment_menu1_frame, fragmentDetailFrag);
tran.addToBackStack(null);
tran.commit();
break;
}
}
}