जैसा कि अन्य ने कहा है, getIntent()
और getExtras()
दोनों शून्य हो सकते हैं। इस वजह से, आप कॉल को एकसाथ श्रृंखला नहीं करना चाहते हैं, अन्यथा आप null.getBoolean("isNewItem");
पर कॉल करना बंद कर सकते हैं जो NullPointerException
फेंक देगा और आपके एप्लिकेशन को क्रैश कर देगा।
यहां बताया गया है कि मैं इसे कैसे पूरा करूंगा। मुझे लगता है कि यह सबसे अच्छे तरीके से स्वरूपित है और किसी अन्य व्यक्ति द्वारा बहुत आसानी से समझा जाता है जो आपका कोड पढ़ सकता है।
// You can be pretty confident that the intent will not be null here.
Intent intent = getIntent();
// Get the extras (if there are any)
Bundle extras = intent.getExtras();
if (extras != null) {
if (extras.containsKey("isNewItem")) {
boolean isNew = extras.getBoolean("isNewItem", false);
// TODO: Do something with the value of isNew.
}
}
आप करना वास्तव में containsKey("isNewItem")
getBoolean("isNewItem", false)
के रूप में करने के लिए कॉल की जरूरत नहीं अवास्तविक लौटाते हैं, तो अतिरिक्त मौजूद नहीं है। आप कुछ इस तरह के ऊपर गाढ़ा सकता है:
Bundle extras = getIntent().getExtras();
if (extras != null) {
boolean isNew = extras.getBoolean("isNewItem", false);
if (isNew) {
// Do something
} else {
// Do something else
}
}
आप सीधे अपने एक्स्ट्रा कलाकार का उपयोग करने की Intent
तरीकों का उपयोग कर सकते हैं। यह संभवतः ऐसा करने का सबसे साफ तरीका है:
boolean isNew = getIntent().getBooleanExtra("isNewItem", false);
वास्तव में यहां पर कोई भी विधि स्वीकार्य है। वह व्यक्ति चुनें जो आपको समझ में आता है और इसे इस तरह से करता है।
मैं समझ एक समस्या है कि लोगों को '() का उपयोग getExtras' पहली जगह में। क्यो ऐसा करें? 'इराद' वर्ग में किसी भी प्रकार का 'अतिरिक्त' प्राप्त करने के लिए आवश्यक सभी विधियां हैं - 'बंडल' प्राप्त करने की कोई आवश्यकता नहीं है। – Squonk
धन्यवाद @Squonk, यह एक अच्छा मुद्दा है। कभी-कभी 'इंटेंट' से पूरे 'बंडल' को लाने के लिए यह थोड़ा क्लीनर होता है जब आपके पास गणना करने के लिए बहुत सारे एक्स्ट्रा होते हैं। – twaddington
इसके बारे में सोचते हुए, मेरी टिप्पणी ज्यादातर इस तथ्य पर आधारित थी कि मैं आमतौर पर 'इरादा' का विश्लेषण करना चाहता हूं। उदाहरण के लिए, मैं 'एक्शन', 'श्रेणी' और इसी तरह से जानना चाहता हूं। ऐसा करने के लिए मुझे पहले 'इरादा' मिल जाएगा, फिर बाद में अतिरिक्त पर ध्यान केंद्रित करें। ओपी के सवाल के मामले में आपका जवाब पूरी तरह मान्य है। – Squonk