0
votes

Obtenez CurrentIntem of (Vertical) ViewPager

J'ai une application avec curseur vertical pour basculer entre différents smileys (de plus heureux à la plus triste) Mon problème est que je ne sais pas comment je peux obtenir actuellement de mon point de vie (lorsque l'utilisateur est sur un smiley spécifique)

J'ai essayé xxx

et dans le Autre activité (où je dois stocker le smiley actuel sélectionné): xxx

Si je suis bon, le TextView de l'autre activité doit afficher un INT entre 1-6. (Positions différentes), et si je ne suis pas bon, il affiche -50.

Je ne comprends pas ce que je fais mal, comme je définis verticalvp.setcurrentItem (3) le smiley correspondant est affiché ... Merci d'avance et désolé pour mon mauvais anglais :)


2 commentaires

Stackoverflow.com/questions/8258759 / ...


@ M.garcia, avez-vous un fragment appelé à partir du ViewPager ???


3 Réponses :


1
votes
**You can use ViewPager.OnPageChangeListener** 
  SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", 0); // 0 - for private mode
  final SharedPreferences.Editor editor = pref.edit();


           viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener(){
                @Override
                public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
                }    
                @Override
                public void onPageSelected(int position) {
                    currentPage=position;
                    Toast.makeText(MainAsyncActivity.this, "position: "+position, Toast.LENGTH_SHORT).show();
                    editor.putInt("key_name",currentPage); // Storing integer
                    editor.commit(); // commit changes

                }

                @Override
                public void onPageScrollStateChanged(int state) {
                }
            });    

**get stored value from SharedPreferences**

   int currentSmileyInt=  pref.getInt("key_name", 0);
   Log.d("Keyname: ", String.valueOf(currentSmileyInt));
   String currentSmileyString = Integer.toString(currentSmileyInt);
   currentSmileyTextView.setText(currentSmileyString);

2 commentaires

Cela a presque travaillé, comme mon point de vue est un VerticalViewPager, je n'ai pas accès à .addonpagechangelistener ... J'ai onscrollchangelistener, onattachetachetstatechangelistener, puis-je utiliser l'une de ces? Merci


J'ai SetonpagechanGangelistener!



0
votes

Pourquoi n'utilisez-vous pas simplement la méthode GetCurrentItem à partir de ViewPager. Comme suit, vous donnera le pagenumber du pager de vue.

 //  getting current Page
 int page = mPager.getCurrentItem();


0 commentaires

0
votes

Cette méthode getcurrentiatem fonctionnera pour obtenir un position de ViewPager fragment et vous pouvez utiliser comme Ce suivant: xxx

Votreactivité est l'endroit où vous utilisez exactement le ViewPager avec adaptateur et getActivity () est le contexte comme référence de votre fragment et n'oubliez pas de faire verticalviewPager objet sous Public Spécificateur d'accès.


0 commentaires