android - एंड्रॉइड में टोस्ट कैसे प्रदर्शित करें?




android-mapview android-asynctask (9)

मेरे पास एक स्लाइडर है जिसे खींचा जा सकता है और फिर यह एक नक्शा दिखाता है। मैं मानचित्र को छिपाने या दिखाने के लिए स्लाइडर को ऊपर और नीचे ले जा सकता हूं। जब नक्शा सामने आता है, तो मैं उस मानचित्र पर स्पर्श घटनाओं को संभाल सकता हूं। जब भी मैं स्पर्श करता हूं, एक AsyncTask निकाल दिया जाता है, यह कुछ डेटा डाउनलोड करता है और एक Toast बनाता है जो डेटा प्रदर्शित करता है। हालांकि मैं टच इवेंट पर कार्य शुरू करता हूं, तब तक टोस्ट प्रदर्शित नहीं होता है, जब तक कि मैं स्लाइडर बंद नहीं करता। जब स्लाइडर बंद हो जाता है और नक्शा प्रदर्शित नहीं होता है तो Toast दिखाई देता है।

कोई विचार?

अच्छी तरह से काम शुरू करें

संपादित करें:

public boolean onTouchEvent(MotionEvent event, MapView mapView){ 
    if (event.getAction() == 1) {
        new TestTask(this).execute();
        return true;            
    }else{
        return false;
    }
 }

onPostExecute में टोस्ट onPostExecute

Toast.makeText(app.getBaseContext(),(String)data.result, 
                Toast.LENGTH_SHORT).show();

नए TestTask(this) , यह MapOverlay संदर्भ है, न कि MapActivity , इसलिए यह समस्या थी।


वाक्य - विन्यास

Toast.makeText(context, text, duration);

पैरामीटर मूल्य

प्रसंग

getApplicationContext() - एप्लिकेशन में चल रही सभी गतिविधियों के लिए संदर्भ देता है।

getBaseContext() - यदि आप कॉन्टेक्स्ट को एप्लिकेशन के भीतर किसी अन्य संदर्भ से एक्सेस करना चाहते हैं तो आप एक्सेस कर सकते हैं।

getContext() - संदर्भ दृश्य को केवल वर्तमान चलती गतिविधि देता है।

टेक्स्ट

text - वापसी "STRING", यदि स्ट्रिंग नहीं है तो आप प्रकार कास्ट का उपयोग कर सकते हैं।

 (string)num   // type caste

अवधि

Toast.LENGTH_SHORT - टोस्ट देरी 2000 एमएस पूर्वनिर्धारित

Toast.LENGTH_LONG - टोस्ट देरी 3500 एमएस पूर्वनिर्धारित

milisecond - टोस्ट देरी उपयोगकर्ता ने मिलीसेकंड परिभाषित किया (उदाहरण के लिए 4000)

उदाहरण 1

Toast.makeText(getApplicationContext(), "STRING MESSAGE", Toast.LENGTH_LONG).show();

Example.2

Toast.makeText(getApplicationContext(), "STRING MESSAGE", 5000).show();

अगर यह टुकड़ा है,

Toast.makeText(getActivity(), "this is my Toast message!!! =)",
                   Toast.LENGTH_LONG).show();

आप अपने टोस्ट को कस्टमाइज़ कर सकते हैं:

LayoutInflater mInflater=LayoutInflater.from(this);

View view=mInflater.inflate(R.layout.your_layout_file,null);
Toast toast=new Toast(this);
toast.setView(view);
toast.setDuration(Toast.LENGTH_LONG);
toast.show();

या सामान्य तरीका:

Toast.makeText(context,"Your message.", Toast.LENGTH_LONG).show();

एंड्रॉइड में टोस्ट करने के लिए

Toast.makeText(MainActivity.this, "YOUR MESSAGE", LENGTH_SHORT).show();

या

Toast.makeText(MainActivity.this, "YOUR MESSAGE", LENGTH_LONG).show();

(LENGTH_SHORT और LENGTH_LONG बूलियन झंडे के रूप में कार्य कर रहे हैं - जिसका अर्थ है कि आप टोस्ट टाइमर को मिलीसेकंड में नहीं भेज सकते हैं, लेकिन आपको उन 2 विकल्पों में से किसी एक का उपयोग करने की आवश्यकता है)


टोस्ट प्रदर्शित करने के लिए निम्न कोड का उपयोग करें:

Toast toast = new Toast(getApplicationContext());

toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);

toast.setDuration(Toast.LENGTH_LONG);

toast.show();

मैं यहां जवाबों में भाग गया, और इस तथ्य से आकर्षित हुआ कि ऐसा लगता है कि कोई व्यक्ति घूम रहा है, यह मानते हुए कि एक गतिविधि संदर्भ की आवश्यकता है। यह मामला नहीं है। हालांकि, यह एक आवश्यकता है कि टोस्ट को मुख्य कार्यक्रम या यूआई थ्रेड से पोस्ट किया गया हो। तो, इसे एक गतिविधि संदर्भ के बाहर काम करने के लिए थोड़ा मुश्किल है। यहां एक उदाहरण दिया गया है जो एक सिस्टम सेवा, या किसी भी संभावित वर्ग के अंदर काम करेगा जो आखिरकार Context

public class MyService extends AccessibilityService {

    public void postToastMessage(final String message) {
        Handler handler = new Handler(Looper.getMainLooper());

        handler.post(new Runnable() {

            @Override
            public void run() {
                Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show();
            }
        });
    }
}

ध्यान दें कि काम करने के लिए हमें Activity एक उदाहरण तक पहुंच की आवश्यकता नहीं है। कृपया यह सुझाव देना बंद करो! अगर Activity की आवश्यकता होती है, तो विधि हस्ताक्षर एक Context लिए कॉल नहीं करेगा।


सबसे आसान तरीका! (अपनी मुख्य गतिविधि में प्रदर्शित करने के लिए, अन्य गतिविधि के लिए प्रथम तर्क को प्रतिस्थापित करें)

Button.setOnClickListener(new View.OnClickListener(){
    @Override
    public void onClick(View v){
        Toast.makeText(MainActivity.this,"Toast Message",Toast.LENGTH_SHORT).show();
    }
}

baseadapter उपयोग करके विस्तार गतिविधि ने baseadapter इस्तेमाल किया

Toast.makeText(getActivity(), 
    "Your Message", Toast.LENGTH_LONG).show();

या यदि आप गतिविधि या mainactivity सक्रियता का उपयोग कर रहे हैं

Toast.makeText(MainActivity.this, 
    "Your Message", Toast.LENGTH_LONG).show();

Toast.makeText(app.getBaseContext(),String)data.result,Toast.LENGTH_SHORT).show();

"app.getBaseContext ()" का उपयोग करने के बजाय।

आप " getAplicationContext () " या " getContext () " का उपयोग करने का प्रयास कर सकते हैं।

यदि आपका कोड गतिविधि में है तो आपको "Activty.this" के "इस" का उपयोग करना चाहिए।
यदि आपका कोड खंड में है तो आपको "getActivity ()" के लिए जाना चाहिए





toast