Note that there are some explanatory texts on larger screens.

plurals
  1. POViewpager adapter not changing views
    primarykey
    data
    text
    <p>i have an activity with actionbarsherlock TabsNavigation (3 tabs) and when I press a tab i change the viewpager adapter of the corresponding fragment. it is working fine, the thing is that when I click on another tab besides the first created, the first page is always the one of that first tab. I tried to put invalidate() before changing the adapter, but it isnt working. anyone has any idea? here is the code:</p> <pre><code>public class Tabsteste2 extends SherlockFragmentActivity implements TabListener { static AdapterOpiniao mOdapter; static AdapterDados mDdapter; static AdapterFoto mFdapter; Bundle extras; JSONParser jsonParser = new JSONParser(); SharedPreferences mPrefs; static ViewPager mPager; static int countopiniao; static int countdados; static int countfoto; JSONArray perguntas = null; PageIndicator mIndicator; static ArrayList&lt;HashMap&lt;String, String&gt;&gt; opiniaolist; static ArrayList&lt;HashMap&lt;String, String&gt;&gt; dadoslist; static ArrayList&lt;HashMap&lt;String, String&gt;&gt; fotolist; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_tabsteste2); opiniaolist = new ArrayList&lt;HashMap&lt;String, String&gt;&gt;(); dadoslist = new ArrayList&lt;HashMap&lt;String, String&gt;&gt;(); fotolist = new ArrayList&lt;HashMap&lt;String, String&gt;&gt;(); mPager = (ViewPager)findViewById(R.id.pager); extras = getIntent().getExtras(); Boolean opiniaoflag = extras.getBoolean("opiniaoflag"); Boolean dadosflag = extras.getBoolean("dadosflag"); Boolean fotoflag = extras.getBoolean("fotoflag"); countdados= extras.getInt("countdados"); countopiniao=extras.getInt("countopiniao"); countfoto=extras.getInt("countfoto"); mPrefs = getSharedPreferences("mPrefs1",MODE_PRIVATE); Log.d("countdados",""+countdados); Log.d("countfoto",""+countfoto); Log.d("countopiniao",""+countopiniao); getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); if(opiniaoflag==true){ ActionBar.Tab opiniaotab = getSupportActionBar().newTab(); opiniaotab.setText("Opinião"); opiniaotab.setTag("op"); opiniaotab.setTabListener(this); mOdapter = new AdapterOpiniao(getSupportFragmentManager()); Log.d("Opiniao",""+opiniaotab.getTag()); getSupportActionBar().addTab(opiniaotab); }if(dadosflag == true){ ActionBar.Tab dadostab = getSupportActionBar().newTab(); dadostab.setText("Dados"); dadostab.setTag("dd"); mDdapter = new AdapterDados(getSupportFragmentManager()); dadostab.setTabListener(this); Log.d("Dados",""+dadostab.getTag()); getSupportActionBar().addTab(dadostab); } // mDdapter = new AdapterDados(getSupportFragmentManager()); if(fotoflag==true){ ActionBar.Tab fotostab = getSupportActionBar().newTab(); fotostab.setText("Fotos"); fotostab.setTag("ft"); mFdapter = new AdapterFoto(getSupportFragmentManager()); fotostab.setTabListener(this); Log.d("Foto",""+fotostab.getTag()); getSupportActionBar().addTab(fotostab); } new getpergunta().execute(); } @Override public void onTabReselected(Tab tab, FragmentTransaction transaction) { } @Override public void onTabSelected(Tab tab, FragmentTransaction transaction) { if(tab.getTag().equals("op")){ mPager.invalidate(); mPager.setAdapter(mOdapter); mIndicator = (UnderlinePageIndicator)findViewById(R.id.indicator); mIndicator.setViewPager(mPager); }else if (tab.getTag().equals("dd")){ mPager.invalidate(); mPager.setAdapter(mDdapter); mIndicator = (UnderlinePageIndicator)findViewById(R.id.indicator); mIndicator.setViewPager(mPager); }else if(tab.getTag().equals("ft")){ mPager.invalidate(); mPager.setAdapter(mFdapter); mIndicator = (UnderlinePageIndicator)findViewById(R.id.indicator); mIndicator.setViewPager(mPager); } } @Override public void onTabUnselected(Tab tab, FragmentTransaction transaction) { } public static class AdapterOpiniao extends FragmentPagerAdapter { public AdapterOpiniao(FragmentManager fm) { super(fm); } @Override public int getCount() { return countopiniao; } @Override public Fragment getItem(int position) { return FragmentOpinioes.newInstance(position); } } public static class AdapterDados extends FragmentPagerAdapter { public AdapterDados(FragmentManager fm) { super(fm); } @Override public int getCount() { return countdados; } @Override public Fragment getItem(int position) { return FragmentDados.newInstance(position); } } public static class AdapterFoto extends FragmentPagerAdapter { public AdapterFoto(FragmentManager fm) { super(fm); } @Override public int getCount() { return countfoto; } @Override public Fragment getItem(int position) { return FragmentFotos.newInstance(position); } } </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.
 

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