2011-10-14 16 views
5

misaligned किया जाता है मैं संवाद से परिणामों को प्रदर्शित करने के लिए Toast.makeText का उपयोग कर रहा हूं और थोड़ा अजीब समस्या है: पाठ उस फ्रेम के ऊपर प्रदर्शित होता है जो इसे पकड़ना चाहिए, इस तरह :टोस्ट.मेकटेक्स्ट (...)। शो() को कभी-कभी

संदेश को फ्रेम के साथ गलत तरीके से ग़लत किया गया है। कृपया इसे बेहतर संरेखित करें। [_ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ ___]

मैं आम तौर पर कोड का उपयोग कर रहा तरह

Toast bread = Toast.makeText(getContext(), R.string.message, Toast.LENGTH_LONG); 
bread.show(); 
एक संवाद से

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

कोई सुझाव?

+2

GetAonteicationContext() के साथ getContext() को बदलने का प्रयास करें ... –

उत्तर

20

आप इस कोशिश कर सकते हैं:

Toast bread = Toast.makeText(getApplicationContext(), R.string.message, Toast.LENGTH_LONG); 
bread.show(); 
+0

डायलॉग क्लास के भीतर से उपलब्ध नहीं है, लेकिन 'getContext()। GetAplicationContext() 'work होगा? –

+0

यह एक इलाज किया, धन्यवाद! –

+0

यह उत्तर देने से पहले प्रश्न की टिप्पणी के रूप में लिखा गया था –

1

आप किसी गतिविधि के अंदर से टोस्ट बनाते हैं तो आपके उपयोग करना चाहिए: this या MyActivityName.this संदर्भ पैरामीटर के रूप में।

+0

यह एक संवाद से है, लेकिन वैसे भी धन्यवाद। –

3
bread.setGravity(5,5,5); 

सटीक स्थान प्राप्त होने तक उन मानों को बदलकर चारों ओर खेलने का प्रयास करें।

लेकिन Gravity.CENTER और अन्य स्थिरांक prefererrd तरीका है का उपयोग करते हुए ..

1

उपयोग करने का प्रयास,

<supports-screens 
    android:largeScreens="true" 
    android:normalScreens="true" 
    android:smallScreens="true" 
    android:anyDensity="true" /> 
अपने मैनिफ़ेस्ट फ़ाइल में

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