Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>!!!PROBLEM SOLVED!!!</p> <p>I don't know if this is the best practice here on SO, but i've solved my problem, thank to this <a href="http://davidjkelley.net/?p=34" rel="noreferrer">page</a> and I want to share it to help someone in the need. There the action bar is the "original", so i had to customize it a bit to fit with ABS. Here is the final class, that handles every aspect of the tab and swype (including putting the tabs inside or outside the action bar automagically):</p> <pre><code> import java.util.ArrayList; import java.util.Arrays; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.app.FragmentTransaction; import android.support.v4.view.ViewPager; import android.util.Log; import android.view.View; import android.widget.ArrayAdapter; import com.actionbarsherlock.app.ActionBar; import com.actionbarsherlock.app.ActionBar.Tab; import com.actionbarsherlock.app.SherlockFragmentActivity; import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuInflater; import com.actionbarsherlock.view.MenuItem; public class MatchRugbyFragments extends SherlockFragmentActivity implements View.OnClickListener, View.OnLongClickListener{ public static ArrayList&lt;String&gt; commentary; public static ArrayAdapter&lt;String&gt; adapter; private ViewPager mViewPager; private TabsAdapter mTabsAdapter; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.fragments_rugby); String[] array = {}; commentary = new ArrayList&lt;String&gt;(); commentary.addAll(Arrays.asList(array)); adapter = new ArrayAdapter&lt;String&gt;(this, R.layout.list_item_commentary, commentary); mViewPager = new ViewPager(this); mViewPager.setId(R.id.pager); setContentView(mViewPager); final ActionBar bar = getSupportActionBar(); bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); bar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE); bar.setHomeButtonEnabled(true); mTabsAdapter = new TabsAdapter(this, mViewPager); mTabsAdapter.addTab(bar.newTab().setText(""+"Comandi"), MatchRugbyButtonFragment.class, null); mTabsAdapter.addTab(bar.newTab().setText(""+"Riassunto"), MatchRugbySummaryFragment.class, null); } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putInt("tab", getActionBar().getSelectedNavigationIndex()); } //Comandi per il click prolungato public boolean onLongClick(View view) { return false; } @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getSupportMenuInflater(); inflater.inflate(R.menu.rugby_match_menu, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: // app icon in action bar clicked; go home Intent intent = new Intent(this, SportScoutActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); return true; default: return super.onOptionsItemSelected(item); } } public static void addCommentaryRow(String s){ adapter.add(s); } public static String commentaryToString(){ String sAdapter= adapter.toString(); return sAdapter; } public void onClick(View arg0) { } /** * @return the commentary */ public ArrayList&lt;String&gt; getCommentary() { return commentary; } /** * @param commentary the commentary to set */ public void setCommentary(ArrayList&lt;String&gt; commentary) { MatchRugbyFragments.commentary = commentary; } /** * @return the adapter */ public ArrayAdapter&lt;String&gt; getAdapter() { return adapter; } /** * @param adapter the adapter to set */ public void setAdapter(ArrayAdapter&lt;String&gt; adapter) { MatchRugbyFragments.adapter = adapter; } public static class TabsAdapter extends FragmentPagerAdapter implements ActionBar.TabListener, ViewPager.OnPageChangeListener { private final Context mContext; private final ActionBar mActionBar; private final ViewPager mViewPager; private final ArrayList&lt;TabInfo&gt; mTabs = new ArrayList&lt;TabInfo&gt;(); static final class TabInfo { private final Class&lt;?&gt; clss; private final Bundle args; TabInfo(Class&lt;?&gt; _class, Bundle _args) { clss = _class; args = _args; } } public TabsAdapter(SherlockFragmentActivity activity, ViewPager pager) { super(activity.getSupportFragmentManager()); mContext = activity; mActionBar = activity.getSupportActionBar(); mViewPager = pager; mViewPager.setAdapter(this); mViewPager.setOnPageChangeListener(this); } public void addTab(ActionBar.Tab tab, Class&lt;?&gt; clss, Bundle args) { TabInfo info = new TabInfo(clss, args); tab.setTag(info); tab.setTabListener(this); mTabs.add(info); mActionBar.addTab(tab); notifyDataSetChanged(); } public int getCount() { return mTabs.size(); } public Fragment getItem(int position) { TabInfo info = mTabs.get(position); return Fragment.instantiate(mContext, info.clss.getName(), info.args); } public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } public void onPageSelected(int position) { mActionBar.setSelectedNavigationItem(position); } public void onPageScrollStateChanged(int state) { } public void onTabSelected(Tab tab, FragmentTransaction ft) { mViewPager.setCurrentItem(tab.getPosition()); Log.v("TAG", "clicked"); Object tag = tab.getTag(); for (int i=0; i&lt;mTabs.size(); i++) { if (mTabs.get(i) == tag) { mViewPager.setCurrentItem(i); } } } public void onTabUnselected(Tab tab, android.app.FragmentTransaction ft) {} public void onTabUnselected(Tab tab, FragmentTransaction ft) { } public void onTabReselected(Tab tab, FragmentTransaction ft) { } } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload