Android में टोस्ट कैसे प्रदर्शित करें?


446

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

कोई विचार?

खैर काम शुरू करो

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

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

और onPostExecuteएक टोस्ट बनाने में

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

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


1
इस पोस्ट का जवाब बहुत समय पहले दिया गया था, लेकिन मुझे लगता है कि मेरी टिप्पणी अभी भी किसी की मदद कर सकती है। इससे संबंधित अच्छी तरह से बनाई गई लाइब्रेरी है Toast, इसे जांचें: stackoverflow.com/a/18280318/1891118
ओलेक्सी के।

2
टोस्ट के बारे में लगभग ... सरल ट्यूटोरियल .... यहां क्लिक करें
थॉमस डैनियल

जवाबों:


849

अपने आवेदन में टोस्ट प्रदर्शित करने के लिए , यह प्रयास करें:

Toast.makeText(getActivity(), (String)data.result, 
   Toast.LENGTH_LONG).show();

एक और उदाहरण:

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

हम अवधि के लिए दो स्थिरांक परिभाषित कर सकते हैं:

int LENGTH_LONG लंबी अवधि के लिए दृश्य या पाठ सूचना दिखाएं।

int LENGTH_SHORT थोड़े समय के लिए दृश्य या पाठ सूचना दिखाएं।

अपने टोस्ट को अनुकूलित करना

LayoutInflater myInflater = LayoutInflater.from(this);
View view = myInflater.inflate(R.layout.your_custom_layout, null);
Toast mytoast = new Toast(this);
mytoast.setView(view);
mytoast.setDuration(Toast.LENGTH_LONG);
mytoast.show();

3
@ ईएलएएन, आपको TOASTS बनाने के लिए गतिविधि संदर्भ की आवश्यकता है, अनुप्रयोग संदर्भ की नहीं।
यौषा अलाय्यूब

1
वास्तव में, गतिविधि के संदर्भ की आवश्यकता सही नहीं है। फिर भी, गतिविधियों के बाहर काम करने के लिए टोस्ट प्राप्त करना (उदाहरण के लिए सिस्टम सेवा में) को मुख्य लूप तक पहुंच की आवश्यकता होती है। मेरा समाधान पोस्ट कर रहा है।
क्रिसकैम

7
यदि आप इसे onClick विधि के अंदर रख रहे हैं, तो getActivity () को getBaseContext () के साथ बदलकर मेरे लिए काम कर रहा है।
एडवर्ड

@ फिलिपबेलग्रेव-हर्बर्ट दुर्भाग्य से आपका लिंक अब अच्छा नहीं है।
एलेन स्पर्टस

4
Toast.makeText (MainActivity.this, message, Toast.LENGTH_LONG) .show ();
शहाब एनाबादी

83

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

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

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

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

1
आधार एडेप्टर या मुख्य गतिविधि जैसी कोई चीज नहीं है, टोस्ट केवल डिसप्ले पैरामीटर ऐप संदर्भ, संदेश, अवधि-लंबी / छोटी
महेश

47

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

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();

उपयोगकर्ता ने 5000 मिलीसेकंड टोस्ट विलंब को परिभाषित किया।
पटेल में जय पटेल

अच्छी व्याख्या, लेकिन आपको TOASTS बनाने के लिए गतिविधि संदर्भ की आवश्यकता है, न कि अनुप्रयोग संदर्भ की।
यौषा अलाय्यूब

खैर, ठीक है, एक डाली जैसे (स्ट्रिंग) संख्या को अभी तक जावा में पेश नहीं किया गया है। Integer.toString () या इसी तरह का प्रयास करें।
मोस्टोव्स्की पतन

2
एक निर्धारित समय के लिए, केवल पूर्वनिर्धारित समय, LENGTH_SHORT और LENGTH_LONG के लिए अवधि निर्धारित करना संभव नहीं है
जॉर्जेस

23

Android में टोस्ट के लिए

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

या

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

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


6
प्रलेखन पढ़ें, आप केवल संदेश की अवधि के लिए या तो Toast.LENGTH_SHORT या Toast.LENGTH_LONG चुनेंगे।
जोर्जेस 16:14

20

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

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();

1
सही - यहाँ GitHub पर वास्तविक परियोजनाओं से कुछ उदाहरण हैं - codota.com/android/methods/android.widget.Toast/show
drorw

15

मैंने कई टोस्ट आजमाए हैं और जिनके लिए उनके टोस्ट उन्हें दे रहे हैं, वे कोशिश कर रहे हैं

Toast.makeText(getApplicationContext(), "google", Toast.LENGTH_LONG).show();

14

इसे करने के दो तरीके हैं।

या तो इनबिल्ट टोस्ट संदेश का उपयोग करें

//Toast shown for  short period of time 
Toast.makeText(getApplicationContext(), "Toast Message", Toast.LENGTH_SHORT).show();

//Toast shown for long period of time
Toast.makeText(getApplicationContext(), "Toast Message", Toast.LENGTH_LONG).show();

या कस्टम लेआउट फ़ाइल प्रदान करके एक कस्टम बनाते हैं

Toast myToast = new Toast(getApplicationContext());
myToast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
myToast.setDuration(Toast.LENGTH_LONG);
myToast.setView(myLayout);
myToast.show();

1
अच्छी व्याख्या, लेकिन आपको TOASTS बनाने के लिए गतिविधि संदर्भ की आवश्यकता है, न कि अनुप्रयोग संदर्भ की।
यौषा अलाय्यूब

एंड्रॉइड डॉक्स विशेष रूप से एप्लिकेशन संदर्भ का उल्लेख करता है: "यह विधि तीन मापदंडों को लेती है: एप्लिकेशन संदर्भ, पाठ संदेश और टोस्ट के लिए अवधि। यह एक ठीक से प्रारंभ टोस्ट ऑब्जेक्ट देता है।"
लग्नेश

9

मैं यहां जवाबों के बीच भाग गया, और इस तथ्य से आकर्षित हुआ कि ऐसा लगता है कि कोई व्यक्ति चारों ओर थपथपा रहा है, यह मानते हुए कि गतिविधि के संदर्भ की आवश्यकता है। यह मामला नहीं है। हालांकि, यह एक आवश्यकता है कि एक टोस्ट को मुख्य घटना या यूआई थ्रेड से पोस्ट किया जाता है। इसलिए, गतिविधि संदर्भ के बाहर काम करने के लिए इसे प्राप्त करना थोड़ा मुश्किल है। यहां एक उदाहरण है जो एक सिस्टम सेवा, या किसी भी संभावित वर्ग के अंदर काम करेगा जो अंततः से विरासत में मिला है 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


8
Toast.makeText(app.getBaseContext(),"your string",Toast.LENGTH_SHORT).show();

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

आप " getApplicationContext () " या " getContext () " का उपयोग करके देख सकते हैं ।

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


7

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

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

6

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

Toast toast = new Toast(getApplicationContext());

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

toast.setDuration(Toast.LENGTH_LONG);

toast.show();

5
 Toast toast=Toast.makeText(getApplicationContext(),"Hello", Toast.LENGTH_SHORT);
 toast.setGravity(Gravity.CENTER, 0, 0); // last two args are X and Y are used for setting position
 toast.setDuration(10000);//you can even use milliseconds to display toast
 toast.show();**//showing the toast is important**

5

सरल तरीका

toast("Your Message")

या

toast(R.string.some_message)

बस अपने में दो विधियाँ जोड़ें BaseActivity। या नया बनाएँ BaseActivityयदि आप पहले से उपयोग नहीं कर रहे हैं।

public class BaseActivity extends AppCompatActivity {
    public void toast(String msg) {
        Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
    }

    public void toast(@StringRes int msg) {
        Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
    }
}

और अपनी सभी गतिविधियों का विस्तार करें BaseActivity

public class MainActivity extends BaseActivity

3

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

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

2

यह मेरे लिए काम किया:

Toast.makeText(getBaseContext(), "your text here" , Toast.LENGTH_SHORT ).show();

2

यहां छवि विवरण दर्ज करें

जरूर पढ़े: Android Toast Example

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

Toast.makeText(context, text, duration);

आप getApplicationContext () या getActivity () या MainActivity.this (यदि गतिविधि का नाम MainActivity है) का उपयोग कर सकते हैं

Toast.makeText(getApplicationContext(),"Hi I am toast",Toast.LENGTH_LONG).show();

या

Toast.makeText(MainActivity.this,"Hi I am Toast", Toast.LENGTH_LONG).show();

2

द गेटिंग स्टार्टेड वे

Toast.makeText(this, "Hello World", Toast.LENGTH_SHORT).show();

1

सेवा से टोस्ट दिखाएं

public class ServiceA extends Service {
    //....
    public void showToast(final String message) {
        Handler handler = new Handler(Looper.getMainLooper());
        handler.post(new Runnable() {

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

आप showToastअपने एप्लिकेशन वर्ग में विधि भी डाल सकते हैं और कहीं से भी टोस्ट दिखा सकते हैं।


1

यदि आप अपनी गतिविधि में एक साधारण टोस्ट लिखना चाहते हैं: Toast.makeText(getApplicationContext(),"Hello",Toast.LENGTH_SHORT).show();

1. टोस्ट में पाठ दृश्य: ---

TextView tv = new TextView(this); tv.setText("Hello!"); tv.setTextSize(30); tv.setTextColor(Color.RED); tv.setBackgroundColor(Color.YELLOW);

टोस्ट के रूप में 2.Showing छवि: -

ImageView iv = new ImageView(this); iv.setImageResource(R.drawable.blonde); Toast t = new Toast(this); t.setView(iv); t.setDuration(Toast.LENGTH_LONG); t.show();

टोस्ट के रूप में 3.showing लेआउट: -

LayoutInflater li = getLayoutInflater(); View view = li.inflate(R.layout.my_toast_layout,null,false); Toast t = new Toast(this); t.setView(view); t.setDuration(Toast.LENGTH_LONG); t.show();

** यदि आप अपने Async में टोस्ट लिखना चाहते हैं तो: private Activity activity; private android.content.Context context; this.activity = activity; this.context = context; Toast.makeText(context, "Hello", Toast.LENGTH_SHORT).show();


1

यहाँ एक और है:

refreshBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(getBaseContext(),getText(R.string.refresh_btn_pushed),Toast.LENGTH_LONG).show();
            }
        });

कहाँ Toastहै:

Toast.makeText(getBaseContext(),getText(R.string.refresh_btn_pushed),Toast.LENGTH_LONG).show();

& strings.xml:

<string name="refresh_btn_pushed">"Refresh was Clicked..."</string>


1

अंदर के टुकड़े (onCreateView)

Toast.makeText(getActivity(), "your message" , Toast.LENGTH_LONG).show();

इनसाइड क्लासेस (ऑनक्रिएट)

Toast.makeText(myClassName.this, "your message" , Toast.LENGTH_LONG).show();

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.