2011-11-01 8 views
59

की अवधि है मैं मिलीसेकंड (एमएस) में LENGTH_LONG और LENGTH_SHORT की सही अवधि की जरूरत है। इसके अलावा मुझे यह जानने की जरूरत है कि LENGTH_LONG के साथ टोस्ट संदेश की अवधि किसी भी फोन में और किसी भी एपीआई संस्करण के साथ समान अवधि होगी।क्या एक टोस्ट LENGTH_LONG और LENGTH_SHORT

कोई जानता है जहां अवधि परिभाषित किया गया है?, मैं एमएस में परिभाषित मतलब। मुझे पता है कि LENGTH_LONG मूल्य 1 के साथ कुछ int const है। लेकिन मुझे नहीं पता कि वास्तविक अवधि कहां परिभाषित की गई है।

+0

क्या आपने setDuration() में मिलीसेकेंड निर्दिष्ट करने का प्रयास किया था? डॉक्स का कहना है कि यह उपयोगकर्ता कॉन्फ़िगर करने योग्य होगा, लेकिन इस समस्या पर विशिष्ट नहीं हैं –

उत्तर

135

here उत्तर दिया। जैसा आपने उल्लेख किया Toast.LENGTH_SHORT और Toast.LENGTH_LONG एमएस में नहीं हैं लेकिन 0 या 1.

वास्तविक अवधि हैं:

private static final int LONG_DELAY = 3500; // 3.5 seconds 
private static final int SHORT_DELAY = 2000; // 2 seconds 
1

परीक्षण और त्रुटि मैं Toast.LENGTH_LONG पाया है के माध्यम से बहुत 2500ms

के करीब रहता है
10

यहां आधिकारिक android source जहां ये झंडे परिभाषित हैं:

public class NotificationManagerService extends SystemService { 

    static final int LONG_DELAY = 3500; // 3.5 seconds 
    static final int SHORT_DELAY = 2000; // 2 seconds 

    private void scheduleTimeoutLocked(ToastRecord r){ 
     mHandler.removeCallbacksAndMessages(r); 
     Message m = Message.obtain(mHandler, MESSAGE_TIMEOUT, r); 
     long delay = r.duration == Toast.LENGTH_LONG ? LONG_DELAY : SHORT_DELAY; 
     mHandler.sendMessageDelayed(m, delay); 
    } 
} 
4

अपने असली है कि हम टोस्ट की अवधि बदलने के लिए अनुमति नहीं है। लेकिन यदि आप एक विकल्प खोज रहे हैं और आपको वास्तव में टोस्ट के साथ ऐसा करने की ज़रूरत है, तो आप इसे आजमा सकते हैं।

पूर्व अगली पंक्ति में एक और डुप्लिकेट टोस्ट रखें:

Toast.makeText(this, "Hello StackOverFlow", Toast.LENGTH_LONG).show(); 
Toast.makeText(this, "Hello StackOverFlow", Toast.LENGTH_LONG).show(); 

उपयोगकर्ता 2 टोस्ट के बीच संक्रमण में कोई बदलाव का पता नहीं लगा होगा।

धन्यवाद।

+2

चूंकि इसे पिछले उत्तरों में 'असंभव करना' के रूप में स्पष्ट रूप से उल्लेख किया गया है, इसलिए मैं एक वैकल्पिक विधि प्रदान कर रहा हूं और मैंने स्पष्ट रूप से इसका भी उल्लेख किया है। आशा है की तुम समझ सकते हो। मैंने अभी अभी खोज की है और पता चला है कि वहां एक ही तरह का सवाल था और उनमें से कुछ जवाब हैं। लेकिन मुझे उनके लिए कोई भी वोट नहीं मिला है। वैकल्पिक रूप से असंभव कहने के विकल्प खोजने के लिए बेहतर है? उम्मीद है कि यह समझ में आता है। [एक Android टोस्ट "Toast.LENGTH_LONG" से अधिक समय हो सकता है?] (Http://stackoverflow.com/questions/2220560/can-an-android-toast-be-longer-than-toast-length-long) –

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