val scoreFragmentArgs1 by navArgs<ScoreFragmentArgs>() 

val scoreFragmentArgs2 = ScoreFragmentArgs.fromBundle(arguments!!)

मैं उपरोक्त किसी भी कथन का उपयोग करके पिछले खंड से पारित तर्कों तक पहुंचने में सक्षम हूं। क्या कोई अंतर बता सकता है और प्रत्येक का उपयोग कब करना है। अग्रिम में धन्यवाद

4
channae 15 जुलाई 2019, 09:40

1 उत्तर

सबसे बढ़िया उत्तर

दूसरी कॉल सरल है। जब भी वह लाइन चलती है, तो उसका बेसब्री से मूल्यांकन किया जाता है, इसलिए इसके लिए arguments बंडल पहले से ही होना चाहिए, साथ ही इसमें वे सभी कुंजियाँ शामिल होंगी जिनकी आप इसमें होने की उम्मीद करते हैं।


पहला दृष्टिकोण आपको इसके बजाय एक आलसी बनाया गया Args उदाहरण देता है, जिसे केवल तभी प्रारंभ किया जाएगा जब आप पहली बार इसके मूल्य को पढ़ने का प्रयास करेंगे। इसलिए इसे कक्षा स्तर पर घोषित करना सुरक्षित है। के लिए डॉक्स में navArgs देखें सारे विवरण। सबसे महत्वपूर्ण भाग:

यह दृढ़ता से अनुशंसा की जाती है कि इस पद्धति का उपयोग केवल तभी किया जाए जब गतिविधि androidx.navigation.NavController.navigate द्वारा संबंधित androidx.navigation.NavDirections ऑब्जेक्ट के साथ शुरू की जाए, जो सुनिश्चित करती है कि आवश्यक तर्क मौजूद हैं।

इस संपत्ति तक तभी पहुँचा जा सकता है जब Activity को एप्लिकेशन से जोड़ा जाए, और इससे पहले की पहुंच का परिणाम IllegalStateException होगा।

6
Community 20 जून 2020, 09:12