2011-04-04 5 views
8

मेरे पास एक कक्षा है जिसका उपयोग मैं अपनी गतिविधि के भीतर जीपीएस डेटा प्राप्त करने के लिए कर रहा हूं। निर्माता में मैं यह गतिविधि के संदर्भ पारित:मैं एक गैर गतिविधि वर्ग से टोस्ट कैसे बना सकता हूं?

gpsFetcher = new GPSFetcher(this); 

और gpsFetcher कक्षा में मेरे पास है:

this.context = c.getApplicationContext(); 

या बस

this.context = c; 

और फिर मैं के साथ टोस्ट फोन:

Toast.makeText(context, "sometext", Toast.LENGTH_LONG); 

लेकिन यह ne ver दिखाता है ... क्या मुझे कुछ याद आ रही है? क्या यह संभव है?

धन्यवाद!

+1

आपको बुला रहे हैं 'टोस्ट.शो(); '? यदि नहीं, तो यह http://stackoverflow.com/questions/3466087/cannot-display-toast-from-an-activity-other-than-my-main-activity का डुप्लिकेट है – Jess

+0

नहीं, नीचे दिए गए उत्तर को देखें ... Facepalm। धन्यवाद। – Matt

उत्तर

10

क्या आप Toast#show भूल रहे हैं?

Toast toast = Toast.makeText(context, "sometext", Toast.LENGTH_LONG); 
toast.show(); 
+1

डीओएच! हाँ, यह समस्या है ... मैंने इसे अन्य स्थानों में भी रखा था, मैं उन्हें नहीं मिला था क्योंकि जब मैं इसे नहीं दिखा रहा था तो मैं रोक रहा था! सोमवार ... धन्यवाद! – Matt

+1

ग्रेट, यह मेरे लिए काम करता है .. धन्यवाद .. :) –

0

मैंने एक ही प्रश्न से मुलाकात की है लेकिन मैंने इसे हल किया है। गैर-गतिविधि वर्ग में, आप बस "सार्वजनिक स्थैतिक स्ट्रिंग" की घोषणा करते हैं। फिर अपनी मुख्य गतिविधि या अन्य गतिविधि में, आप सीधे टोस्ट का उपयोग कर सकते हैं।

मेरे मामले में, मैं एक गैर-गतिविधि वर्ग नोटडीबी घोषित करता हूं। तो मैं कक्षा में public static String S घोषित करता हूं। ।। (आप कक्षा में एस मूल्य बदल सकते हैं तो फिर मेरी MainActivity में, मुझे यह घोषणा करते

Toast(MainActivity.this, NoteDB.S ,TOAST.SHORT_LENTGH).show(); 

यह अच्छी तरह से काम करता है

+0

आवेदन संदर्भ ...? http://developer.android.com/guide/topics/ui/notifiers/toasts.html –

1

साथ ही आप show() कॉल करना होगा:

Toast.makeText(context, "sometext", Toast.LENGTH_LONG).show();

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