I ont une classe qui étend SherlockFragment, qui a un "filtre" actionbarItemélément différent de actionbar pour différents onglets, ActionBarSherlock
TabbedFragment.java
public class TabbedFragment extends SherlockFragment{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState){
View rootView = inflater.inflate(R.layout.activity,container, false);
mTabHost = (FragmentTabHost)rootView.findViewById(android.R.id.tabhost);
mTabHost.setup(getActivity(), getChildFragmentManager(), android.R.id.tabcontent);
mTabHost.addTab(mTabHost.newTabSpec("fragmentb").setIndicator("TAB 1"),
Tab1.class, null);
mTabHost.addTab(mTabHost.newTabSpec("fragmentc").setIndicator("TAB 2"),
Tab2.class, null);
for(int i=0;i<mTabHost.getTabWidget().getChildCount();i++)
{
TextView tv = (TextView) mTabHost.getTabWidget().getChildAt(i).findViewById(android.R.id.title);
tv.setTextColor(Color.parseColor("#ffffff"));
}
return rootView;
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.post_filter, menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menuOption_filter:
// To-Do
default:
break;
}
return true;
}
}
j'ai deux pattes, à la fois étend ListFragment
Tab1.java:
public class Tab1 extends ListFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
// TO-DO
}
}
Tab2.java:
public class Tab2 extends ListFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
// TO-DO
}
}
Cela va créer ActionBar comme ceci:
---------------------
| Filter | <--- ActionBarItem
---------------------
| TAB1 | TAB2 |
---------------------
Maintenant, je veux montrer le filtre uniquement lorsque l'utilisateur est sur TAB1 et lorsque l'utilisateur sélectionne TAB2 le « filtre » doit être caché.
Solution i essayé:
Au lieu de créer un menu en classe "TabbedFragment", j'ai créé un menu dans Tab1 mais la méthode onCreateOptionsMenu() dans Tab1 n'est pas appelé (j'ai essayé setHasOptionsMenu (vrai) dans OnCreate() de Tab1, toujours pas de chance)
PS La classe TabbedFragment étend SherlockFragment, je ne veux pas qu'elle s'étende avec Activity/SherlockFragmentActivity.
S'il vous plaît HELP !!!
Merci beaucoup Chamu !!! Ça a marché. – Himanshu