반응형
안드로이드 메뉴 구성 할때 Fragment별로 메뉴 구성을 다르게 하기 Activity에서 menu 구성하던 방법과 유사하게 onCreateOptionMenu를 Ovrride해주면 된다.
여기서 주의 할 점은 setHasOptionsMenu(true); 함수를 적어 주어야 한다는 것이다.
메뉴 클릭의 경우에도 onOptionsItemSelected를 Ovrride해주어 아이템 아이디 별로 이벤트를 작성해 주면 된다.
1. FragmentA
public class FragmentA extends Fragment {
private LinearLayout FragmentA;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
FragmentA = (LinearLayout) inflater.inflate(R.layout.fragmentA, container, false);
setHasOptionsMenu(true);
return FragmentA;
}
@Override
public void onResume() {
super.onResume();
getActivity().invalidateOptionsMenu();
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.menu_frag_a, menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case R.id.frag_a :
Toast.makeText(getActivity(), "fragA", Toast.LENGTH_SHORT).show();
break;
}
return super.onOptionsItemSelected(item);
}
}
2. FragmentB
public class FragmentB extends Fragment {
private LinearLayout FragmentB;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
FragmentB = (LinearLayout) inflater.inflate(R.layout.fragmentB, container, false);
setHasOptionsMenu(true);
return FragmentB;
}
@Override
public void onResume() {
super.onResume();
getActivity().invalidateOptionsMenu();
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.menu_frag_b, menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case R.id.frag_b :
Toast.makeText(getActivity(), "fragA", Toast.LENGTH_SHORT).show();
break;
}
return super.onOptionsItemSelected(item);
}
}
반응형
'Android' 카테고리의 다른 글
[Android] TabLayout 탭 레이아웃 만들기!!(유튜브 탭 레이아웃) (0) | 2016.11.29 |
---|---|
[Android] EditText 엔터키 이벤트 (0) | 2016.11.24 |
[Android] Activity에서 Fragment 함수 호출, Fragment에서 Activity 함수 호출 (0) | 2016.11.22 |
[Android] 화면전환시 새로 그리기 방지(configChanges) (0) | 2016.11.21 |
[Android] 안드로이드 해상도별 Dimens (1) | 2016.11.18 |