Fragment 로 제작된 탭으로 각각의 탭별로 서로 다른 bottomNav를 가지고 있습니다.
그런데 onOptionsItemSelected 가 작동되지 않습니다... .ㅠㅠ
소스첨부합니다.
자바소스 ============================
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
setHasOptionsMenu(true);
return inflater.inflate(R.layout.fragment_second_tab, container, false);
}
@Override
public void onResume() {
super.onResume();
getActivity().invalidateOptionsMenu();
}
@Override
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
inflater.inflate(R.menu.menu_bottom_ncmanager, menu);
for (int i = 0; i < menu.size(); i++) {
MenuItem item = menu.getItem(i);
SpannableString spanString = new SpannableString(menu.getItem(i).getTitle().toString());
spanString.setSpan(new ForegroundColorSpan(Color.BLACK), 0, spanString.length(), 0); //fix the color to white
item.setTitle(spanString);
}
super.onCreateOptionsMenu(menu, inflater);
}
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) { <<< 작동안함... .ㅠㅠ
if(item.getItemId() == R.id.get_ncPhoto){
txt_test.setText("get_ncPhoto");
Toast.makeText(getActivity(), "get_ncPhoto", Toast.LENGTH_LONG).show();
}else if(item.getItemId() == R.id.get_ncFromQR){
Toast.makeText(getActivity(), "get_ncFromQR", Toast.LENGTH_LONG).show();
}else if(item.getItemId() == R.id.ncSearch){
Toast.makeText(getActivity(), "ncSearch", Toast.LENGTH_LONG).show();
}
return true;
}
레이아웃 소스 =========================
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="
http://schemas.android.com/apk/res/android"
xmlns:tools="
http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="
http://schemas.android.com/apk/res-auto"
tools:context=".Second_tab">
<TextView
android:id="@+id/tv_test"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="Second Tab"
android:textSize="30sp" />
<com.google.android.material.bottomnavigation.BottomNavigationView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
app:labelVisibilityMode="labeled"
app:itemBackground="@color/white"
app:menu="@menu/menu_bottom_ncmanager"/>
</FrameLayout>
메뉴 소스 =====================
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="
http://schemas.android.com/apk/res/android"
xmlns:app="
http://schemas.android.com/apk/res-auto"
>
<item
android:id="@+id/get_ncPhoto"
android:enabled="true"
android:icon="@drawable/camera"
android:title="등록"
app:showAsAction="always"/>
<item
android:id="@+id/get_ncFromQR"
android:enabled="true"
android:icon="@drawable/qr_code"
android:title="가져오기"
app:showAsAction="always"/>
<item
android:id="@+id/ncSearch"
android:enabled="true"
android:icon="@drawable/manage_search"
android:title="찾기"
app:showAsAction="always"/>
</menu>
원인을 알수 있을까요?...