This is your main activity:
public class BaseSampleActivity extends SherlockFragmentActivity { TestFragmentAdapter mAdapter; ViewPager mPager; PageIndicator mIndicator; protected ListFragment mFrag; @Override public void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.themed_titles); //This adapter can load as many fragment as you want with different content, see later mAdapter = new TestFragmentAdapter(getSupportFragmentManager()); mPager = (ViewPager)findViewById(R.id.pager); mPager.setAdapter(mAdapter); mPager.setCurrentItem(1); mIndicator = (TitlePageIndicator)findViewById(R.id.indicator); mIndicator.setViewPager(mPager); } @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); //This show how to set up a Searhbar SearchView searchView = new SearchView(getSupportActionBar().getThemedContext()); searchView.setQueryHint("Procure pelo nome"); searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String query) { // TODO Auto-generated method stub // Intent search = new Intent(getApplicationContext(), SearchableActivity.class); // search.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); // search.putExtra("query", query); // startActivity(search); return true; } @Override public boolean onQueryTextChange(String newText) { // TODO Auto-generated method stub return false; } }); menu.add("Search") .setIcon(R.drawable.ic_search_inverse) .setActionView(searchView) .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW); //This is how to set up a SubMenu SubMenu subMenu1 = menu.addSubMenu("Action Item"); subMenu1.add(0, 1, 0, "Sample"); subMenu1.add(0, 2, 0, "Menu"); subMenu1.add(0, 3, 0, "Sair"); MenuItem subMenu1Item = subMenu1.getItem(); subMenu1Item.setIcon(R.drawable.ic_title_share_default); subMenu1Item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { //This is a switch case to do when the SubMenu is clicked. case 1: Toast.makeText(BaseSampleActivity.this, "Now "+item.getItemId(), Toast.LENGTH_SHORT).show(); return true; case 2: Toast.makeText(BaseSampleActivity.this, "Now = "+item.getItemId(), Toast.LENGTH_SHORT).show(); return true; case 3: Toast.makeText(BaseSampleActivity.this, "Now = "+item.getItemId(), Toast.LENGTH_SHORT).show(); return true; } return super.onOptionsItemSelected(item); } }
This is your FragmentPagerAdapter:
class TestFragmentAdapter extends FragmentPagerAdapter implements IconPagerAdapter { //Here you set up the title of each fragment, its in portuguese. protected static final String[] CONTENT = new String[] { "CATEGORIAS", "PRINCIPAL", "AS MELHORES", }; protected static final int[] ICONS = new int[] { R.drawable.perm_group_calendar, R.drawable.perm_group_camera, R.drawable.perm_group_device_alarms, }; private int mCount = CONTENT.length; public TestFragmentAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) {Fragment f = null; switch(position){ case 0: { //Here you can set up a lot of diferent fragment content, here I just created a simple //arraylistfragment f = new ArrayListFragment(); // set arguments here, if required Bundle args = new Bundle(); args.putInt(ArrayListFragment.ARG_position, position); f.setArguments(args); break; } case 1: { f = new ArrayListFragment(); // set arguments here, if required Bundle args = new Bundle(); f.setArguments(args); break; } case 2: { f = new ArrayListFragment(); // set arguments here, if required Bundle args = new Bundle(); f.setArguments(args); break; } default: throw new IllegalArgumentException("not this many fragments: " + position); } return f; } @Override public int getCount() { return mCount; } @Override public CharSequence getPageTitle(int position) { return TestFragmentAdapter.CONTENT[position % CONTENT.length]; } @Override public int getIconResId(int index) { return ICONS[index % ICONS.length]; } public void setCount(int count) { if (count > 0 && count <= 10) { mCount = count; notifyDataSetChanged(); } } }
I just made a simple example that you can easily understand how to implement ActionBarSherlock and ViewPagerIndicator.
I would like to upload this to github, but it will take some time to figure out how to do this, maybe you can teach me later.
Then I upload it to 4shared. http://www.4shared.com/rar/zOWrvmyu/ViewpagerandSherlock.html
If you have any questions, ask me later.