Android : ActionItems of 2nd Fragment are only showing on both fragments in ViewPager

on Sunday, August 10, 2014


I have two Fragments in created by ViewPager's MainAvtivity. I want to add ActionItemson ActionBar According to the which Fragment is active currently. I am not Adding menu items on Activity. But only the ActionItems of 2nd Fragment are only showing on both fragments. Here is my code :


For 1stFragment :



@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_one, menu);
MenuItem searchItem = menu.findItem(R.id.searchWidgetOne);
SearchView search = new SearchView(getActivity());
search.setOnQueryTextListener(this);
searchItem.setActionView(search);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

switch(item.getItemId())
{
case R.id.action_items_one:
Intent addCrInent = new Intent(getActivity(), ActivityA.class);
startActivity(addCrInent);

return true;
case R.id.action_items_two:
Intent addStIntent = new Intent(getActivity(), ActivityB.class);
startActivity(addStIntent);

return true;
default:
return false;
}

}


For 2ndFragment:



@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_second, menu);
MenuItem searchItem = menu.findItem(R.id.searchWidgetTwo);
SearchView search = new SearchView(getActivity());
search.setOnQueryTextListener(this);
searchItem.setActionView(search);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

switch(item.getItemId())
{
case R.id.action_items_one_secondMenu:
Intent addCrInent = new Intent(getActivity(), ActivityA.class);
startActivity(addCrInent);

return true;
case R.id.action_items_two_secondMenu:
Intent addStIntent = new Intent(getActivity(), ActivityB.class);
startActivity(addStIntent);

return true;
default:
return false;
}

}


For Both Fragments, in MY onCreate i have written this line :



setHasOptionsMenu(true);


Here is my menu_one.xml :



<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/searchWidgetOne"
android:actionViewClass="android.widget.SearchView"
android:icon="@drawable/ic_action_search"
android:orderInCategory="1"
android:showAsAction="always|collapseActionView"
android:title="@string/action_search"/>

<item
android:id="@+id/action_items_one"
android:icon="@drawable/ic_action_new_event"
android:orderInCategory="2"
android:showAsAction="ifRoom"
android:title="@string/add_course"/>

<item
android:id="@+id/action_items_two"
android:icon="@drawable/ic_action_add_person"
android:orderInCategory="3"
android:showAsAction="ifRoom"
android:title="@string/add_student"/>


And Here is my menu_second.xml:



<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

<item
android:id="@+id/searchWidgetTwo"
android:actionViewClass="android.widget.SearchView"
android:icon="@drawable/ic_action_search"
android:orderInCategory="1"
android:showAsAction="always|collapseActionView"
android:title="@string/action_search"/>

<item
android:id="@+id/action_items_one_secondMenu"
android:icon="@drawable/ic_action_new_event"
android:orderInCategory="2"
android:showAsAction="ifRoom"
android:title="@string/add_course"/>

<item
android:id="@+id/action_items_two_secondMenu"
android:icon="@drawable/ic_action_add_person"
android:orderInCategory="3"
android:showAsAction="ifRoom"
android:title="@string/add_student"/>


I have also used ivalidateOptionMenu() in onPageSelected() but in vain.


0 comments:

Post a Comment