9

मेरा डिवाइस एंड्रॉयड 5.1.1 चलाता है और मुझे पता चला कि मैं यह मिल गया है, तो मैंटोस्ट: "यह" और "getAplicationContext()" के बीच अंतर?

Toast.makeText(this, "This is a toast", Toast.LENGTH_SHORT).show(); 

का उपयोग करें:

"round" toast

लेकिन अगर मैं this के बजाय getApplicationContext(), का उपयोग

Toast.makeText(getApplicationContext(), "This is a toast", Toast.LENGTH_SHORT).show(); 

मुझे यह मिला:

rectangle toast

दोनों को गतिविधि से सीधे कहा जाता है।

ऐसा क्यों है?

उत्तर

13

इसे थीम के साथ सम्मिलित थीम के साथ करना है। this का उपयोग एक संदर्भ का उपयोग कर रहा है (मैं आपका Activity या Fragment मान रहा हूं) जिसमें एप्लिकेशन संदर्भ की तुलना में एक अलग थीम है।

यदि आपके पास कोई कारण है कि आपको एप्लिकेशन संदर्भ का उपयोग करने की आवश्यकता है, तो आप अपनी गतिविधियों का उपयोग कर रहे किसी भी विषय में इसे लपेट सकते हैं (आमतौर पर आपके AndroidManifest.xml में सेट) और इसे "गोल" टोस्ट दिखाना चाहिए।

Toast.makeText(new ContextThemeWrapper(getApplicationContext(), R.style.AppTheme), "This is a toast", Toast.LENGTH_SHORT).show(); 
संबंधित मुद्दे