2013-01-01 15 views
6

एंड्रॉइड.support.v4.app.FragmentPagerAdapter को विस्तारित करने वाली कक्षा में, Context.getString (..) विधि तक पहुंच प्राप्त करने का कोई तरीका है बिना विस्तारित कक्षा किसी गतिविधि की आंतरिक कक्षा है या कुछ संदर्भ में गुज़र रही है बाहर?android.support.v4.app.FragmentPagerAdapter में getString() तक पहुंच?

किसी भी संकेत के लिए धन्यवाद!

उत्तर

4

एक टुकड़ा उपयोग से:

getActivity().getString(...) 

एक एडाप्टर उपयोग से:

getContext().getResources().getString(...) 

हाँ, यदि आप कोई संदर्भ संसाधनों का उपयोग करने की जरूरत है।

+3

ध्यान दें कि 'getActivity()' को निष्क्रिय होने तक निष्क्रियता() 'शून्य हो जाएगी। – dmon

+0

धन्यवाद, लेकिन दुर्भाग्य से मैं एक FragmentPagerAdapter में हूँ, एक टुकड़ा नहीं! –

+0

getContext() का उपयोग करें, और यदि आपके पास किसी संदर्भ तक पहुंच नहीं है, तो इसे पास करें। – Snicolas

2

मुझे एक समान समस्या थी। एक दराज लेआउट से, मैं तय करना चाहता था कि एक सहायक वर्ग से बुलाए गए तरीके में किस टुकड़े का उपयोग करना है।

onCreateView में

तो ...

String form = getResources().getStringArray(R.array.drawer_array)[i]; 
     Context context = getActivity().getApplicationContext(); 

     FragmentHelper fh = new FragmentHelper(); 
     int myFragment = fh.getCurrentFragment(form,context); 

और सार्वजनिक FragmentHelper() में ...

public int getCurrentFragment(String form, Context context){ 
       ... 
       context.getResources().getString(R.string.label_item1); 
       ... 
    } 

चाल getResources के सामने प्रसंग जोड़ने के लिए किया जा रहा है()। अन्यथा, मेरे ढेर से पता चला कि टुकड़ा किसी गतिविधि से जुड़ा नहीं था।

उम्मीद है कि यह किसी की मदद करेगा।

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