2011-12-26 11 views
13

मैं एंड्रॉइड के लिए नया हूं और मैं खुद को नेट पर उपलब्ध संसाधन से एसडीके सीख रहा हूं।Resources.getSystem() बनाम getResources()

अब मैं एक परिस्थिति में आया हूं। मैं नीचे दिए गए कोड कोशिश कर रहा हूँ:

टाइप 1: getResources().getString(android.R.string.cancel);

टाइप 2: Resources.getSystem().getString(android.R.string.cancel);

प्रकार 3: getString(android.R.string.cancel);

उपरोक्त विधियों में से सभी समान मान। तो इन तरीकों क्या हैं, उनके उपयोग के मामले क्या हैं। किस विधि का उपयोग करने के लिए अच्छी प्रथाएं क्या हैं। कृपया मेरी मदद करें।

उत्तर

0

ये तीन विधियां समान हैं। यहां रूट विधि है: getApplicationContext().getResource().getString("") और यहां शॉर्टकट विधि है: getString("") जब आप ऐप्स संदर्भ पर प्रसंस्करण कर रहे हैं तो शॉर्टकट विधि का उपयोग करें। लगभग हर मामले में, हम स्ट्रिंग फ़ाइल में स्ट्रिंग्स को परिभाषित करने के लिए getString() का उपयोग करते हैं।

4

सभी 3 वापसी एक ही मूल्य है, लेकिन सिस्टम संसाधनों को Resources.getSystem() संदर्भ और एक दुर्घटना if used incorrectly.

सलाह दी उपयोग के कारण हो सकता है "GetString (android.R.string.cancel);"

यह एंड्रॉइड डेवलपर वेबसाइट पर WalkieTalkieActivity.java code में भी उपयोग किया जाता है।

+0

हाँ मैंने संसाधनों के साथ प्रयास किया .getSystem() ने मुझे कुछ स्थानों पर बल दिया .. मैं अन्य दो की सिफारिश करता हूं .. –

7

अंतर केवल आपको प्राप्त नहीं होता है, लेकिन आप कहां उपयोग कर सकते हैं।

पहला और तीसरा "संदर्भ" का उपयोग कर रहे हैं। अदृश्य। इसलिए, अक्सर (स्थिर सदस्यों या गतिविधि सदस्यों में से) आप सीधे उनका उपयोग नहीं कर सकते हैं, जब तक कि आप एक स्थिर चर या आपके दायरे में पैरामीटर के रूप में संदर्भ या संसाधन पास न करें। लेकिन दूसरा एक

Resources.getSystem().getString(android.R.string.cancel) 

आप अपने आवेदन में बिल्कुल हर जगह उपयोग कर सकते हैं, यहां तक ​​कि स्थिर स्थिरांक घोषणा में! लेकिन सिस्टम संसाधनों के लिए केवल

+3

हालांकि यह एक नकारात्मक पक्ष के साथ आता है। 'Resources.getSystem() 'केवल सिस्टम संसाधनों तक पहुंच प्रदान करता है (कोई एप्लिकेशन संसाधन नहीं), और वर्तमान स्क्रीन के लिए कॉन्फ़िगर नहीं किया गया है (आयाम इकाइयों का उपयोग नहीं कर सकता, अभिविन्यास के आधार पर नहीं बदला जाता है)। –

+0

@AlexanderSuraphel कृपया, उत्तर की अंतिम वाक्य देखें। मैं आपसे बिल्कुल सहमत हूं। – Gangnus

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