2012-05-27 17 views
9

मैं कुछ ट्यूटोरियल्स के माध्यम से गया, और एंड्रॉइड डॉक में, यह कहता है कि इसे तुरंत चालू करते समय लेआउट इन्फ्लेटर तक पहुंच न करें। Google दस्तावेज़ से उदाहरण:सीधे लेआउटइनफ्लेटर को कॉल करने के बीच क्या अंतर है और नहीं?

LayoutInflater inflater = (LayoutInflater)context.getSystemService 
    (Context.LAYOUT_INFLATER_SERVICE); 

ट्यूटोरियल मैं माध्यम से चला गया इस एक है:

LayoutInflater inflater = LayoutInflater.from(parent.getContext()); 

तो क्या अंतर स्पष्ट अलग कोड के अलावा है क्या मैं सच में समझ में नहीं आता है। किसी भी स्पष्टीकरण की सराहना की। मुझे लगता है कि एंड्रॉइड डॉक हमारा अनुसरण करना चाहिए, लेकिन मुझे यकीन नहीं है कि इससे कोई फर्क पड़ता है।

उत्तर

17

आप एंड्रॉयड स्रोत खुल तो आप देख सकते हैं LayoutInflator.from विधि लग रहा है कि इतने की तरह:

/** 
* Obtains the LayoutInflater from the given context. 
*/ 
public static LayoutInflater from(Context context) { 
    LayoutInflater LayoutInflater = 
      (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    if (LayoutInflater == null) { 
     throw new AssertionError("LayoutInflater not found."); 
    } 
    return LayoutInflater; 
} 

कोड की दो पंक्तियाँ इसका मतलब है कि आपके प्रश्न में एक ही काम करो। सुनिश्चित नहीं है कि आपके द्वारा पढ़ा जाने वाला ट्यूटोरियल बिल्कुल कहता है लेकिन मुझे कार्यक्षमता में कोई अंतर नहीं दिखता है। from विधि का उपयोग करना अच्छा है क्योंकि इसे थोड़ा कम टाइपिंग की आवश्यकता है, यही वह है।

+0

हाहा! वाह धन्यवाद! वास्तव में मदद की। मेरे पास एक और सवाल होता था लेकिन आपने इसका जवाब भी दिया था। बहुत सराहना की! – Andy

2
LayoutInflater inflater = (LayoutInflater)context.getSystemService 
    (Context.LAYOUT_INFLATER_SERVICE); 

आप System Manager

LayoutInflater inflater = LayoutInflater.from(parent.getContext()); 

से LayoutInflater Service Provider हो रही है आप LayoutInflater Class

से static विधि का उपयोग कर रहे हैं मैं कहूँगा कि अंतर केवल कोड में है और कैसे आप यह भी बुला ढेर लेकिन परिणाम बारे में वही है - आपको LayoutInflater मिलेगा।

के बारे में अधिक this

सादर