2011-04-12 13 views
12

के रूप में मैं एक स्थान श्रोता गतिविधि है और मैं टोस्ट सूचनाएं बनाना चाहते हैं। लेकिन यह संदर्भ के रूप में मुझे this पास नहीं करने देगा। मुझे टोस्ट कैसे काम करना चाहिए?टोस्ट का उपयोग कैसे करें जब मैं नहीं कर सकते का उपयोग "इस" संदर्भ

+0

आप गतिविधि कोड और त्रुटि संदेश पोस्ट कर सकते हैं? आपको किसी गतिविधि के भीतर से एक वैध संदर्भ प्राप्त करने में सक्षम होना चाहिए। –

+0

'विधि टोस्ट (संदर्भ, charSequence, int) प्रकार टोस्ट में तर्क (mylocationlistener, स्ट्रिंग, int) ' –

+0

के लिए लागू नहीं है, मैंने फैसला किया है कि मैं स्थानसूची को गतिविधि में एक उप वर्ग –

उत्तर

16

टोस्ट अपनी गतिविधि वर्ग के अंदर स्थित है, तो आप yous सकता है YourActiviy.this जहां YourActivity वर्ग के नाम है। अगर यह अपनी कक्षा के बाहर है, तो आप अपनी गतिविधि संदर्भ (निर्माता आदि में इसे पारित)

+0

यह काम नहीं किया है, लेकिन अब –

5

आप उदाहरण के लिए उपयोग कर सकते हैं NameOfYourActivity.this

:

public class MyActivity extends Activity { 

... 
    Toast.makeText(MyActivity.this, text, duration).show(); 
+0

गतिविधि कर दूंगा एक 'locationlistener' तो यह त्रुटि विधि' makeText (संदर्भ, CharSequence, पूर्णांक) प्रकार टोस्ट में तर्क (mylocationlistener, स्ट्रिंग, पूर्णांक) के लिए लागू नहीं है देता है ' –

+0

@Seth - locationlistener एक गतिविधि नहीं है। – MByD

+0

आपको अपना कोड अपने ओपी में पेस्ट करना चाहिए, हमारे लिए आपकी मदद करना आसान होगा। क्योंकि मेरे सेटअप गलत था – ccheneson

0

ऐसा लगता है कि आप गतिविधि में एक आंतरिक वर्ग में हैं पाने के लिए की आवश्यकता होगी। यदि ऐसा है, तो ActivityName.this आज़माएं।

5

आप भीतरी कक्षा में कर रहे हैं तो यह भी

getApplicationContext()

+3

ध्यान रखें करता है। यदि आप UI थ्रेड बंद हैं तो यह काम नहीं करेगा। –

1

उदाहरण के लिए, इस कोड की कोशिश करता है, तो आप एक विधि "onComplete" इसके अंदर बुलाया के साथ एक श्रोता है, कार्य करना चाहिए।

public void onComplete(String response, Object state) { 
     final String response_complete = response; 
     MyActivity.this.runOnUiThread(new Runnable() { 
      @Override 
      public void run() { 
       Toast.makeText(MyActivity.this, text, duration).show(); 
      } 
     }); 
    } 

ऐसा करना चाहिए।

1

बजाय getApplicationContext कोशिश()

Toast tea = Toast.makeText(getApplicationContext(), "Send", Toast.LENGTH_LONG); 
tea.show(); 
2

फील्ड चर: Context context;

OnCreate अंदर

: context = this;

Xamarin/सी # सिंटेक्स: Toast.MakeText(context, "your message", ToastLength.Long).Show();

एंड्रॉयड/जावा वाक्य रचना: Toast.makeText(context, "your message", Toast.LENGTH_LONG).show();

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