2017-09-06 11 views
5

के साथ कुछ डेटा पास करें मैं व्यूअर टैब खंड बदलने के साथ बटन के अंदर कुछ मूल्य पास करना चाहता हूं। मेरे पास दो सवाल हैं।viewpager.setCurrentItem (स्थिति)

  1. डेटा पास करने का सबसे अच्छा तरीका क्या है?
  2. यदि मैं स्थिर डेटा का उपयोग करता हूं तो समस्या क्या होगी? इस तरह की तरह:

    public static string abc="" 
    
    case R.id.IVActionMore: 
    ViewPager viewPager = (ViewPager) getActivity().findViewById(R.id.tabs_viewpager); 
    viewPager.setCurrentItem(3); 
    //abc = "action"; 
    break; 
    
+1

आप की कोशिश की है ** addOnPageChangeListener ** मेरे लिए –

+0

वैसे वहाँ स्थिर स्ट्रिंग का उपयोग करने में कोई समस्या नहीं है, मैं भी इसका इस्तेमाल – Pulkit

+1

चारों ओर कुछ जानकारी मैं Android डेवलपमेंट में हाथ आजमाया पारित करने के लिए जाँच, लेकिन कॉन्टेक्स्ट ऑब्जेक्ट्स थे जिन्हें आपको डेटा डालने के लिए उपयोग करना चाहिए। एक स्थैतिक एक अच्छा विचार नहीं है क्योंकि उन्हें जीवन चक्र अवधारणा द्वारा नियंत्रित नहीं किया जाता है, इसलिए आपकी ऐप को ध्यान में रखे बिना पुनः लोड किया जा सकता है और डेटा समाप्त हो गया है। – daniu

उत्तर

1

आप साझा-वरीयता उपयोग कर सकते हैं डेटा सेट और प्राप्त करने के लिए। स्थिर का उपयोग करना एक अच्छा विचार नहीं है। लिंक

https://stackoverflow.com/a/23024962/4549220

+0

क्या यह डेटा पास करने का सबसे अच्छा तरीका है? –

+1

आप इसे देख सकते हैं: https://stackoverflow.com/questions/4878159/whats-the-best-way-to-share-data-between-activities https://stackoverflow.com/questions/7885276/how- टू-शेयर एक ही डेटा के बीच-बहु-गतिविधियों में एंड्रॉयड – Tariqul

1
  1. उपयोग addOnPageChangeListener

शून्य addOnPageChangeListener (ViewPager.OnPageChangeListener श्रोता) एक श्रोता कि सक्रिय किया जाएगा जब भी पेज में परिवर्तन या है जोड़े वृद्धिशील स्क्रॉल किया गया।

कैसे?

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
    @Override 
    public void onPageScrolled(int position, float 
        positionOffset, int positionOffsetPixels) { 

    } 

    @Override 
    public void onPageSelected(int position) 
    { 

    if(position == 3) 
    { 
      // DO your work 
    } 

    } 

    @Override 
    public void onPageScrollStateChanged(int state) { 

    } 
}); 

OnClick

buttonOBJ.setOnClickListener(new OnClickListener() 
    { 
      @Override 
      public void onClick(View v) 
      { 
       viewPager.setCurrentItem(viewPager.getCurrentItem() + 1, true); 
      } 
    }); 
+0

मैं बटन क्लिक पर पेज बदलना चाहता हूं। –

+0

@ t.gakk अद्यतन उत्तर –

+0

आपके रीप्ले के लिए धन्यवाद। लेकिन "स्टेटिक का प्रयोग न करें। यह अच्छा दृष्टिकोण नहीं है"। सबसे अच्छा तरीका क्या है? और मैं इसे आपके कोड में कैसे उपयोग कर सकता हूं। –

संबंधित मुद्दे