2010-11-11 12 views
5

मेरे पास निम्नलिखित /res/values/uris.xmlNullPointerException एक स्ट्रिंग संसाधन तक पहुंचने का प्रयास कर रहा है

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
<string name="bladder">blahblah</string> 
</resources> 

है, मैं इसे कोड में एक्सेस कर रहा हूं:

private String bladderUrl= getString(R.string.bladder); 

लेकिन यह शून्य हो रहा है। मुझे यकीन नहीं है क्यों?

उत्तर

21

मेरे लगता है कि आप इस तरह bladderUrl ख़ाली रखा: स्पष्ट करने के लिए है कि

सभी की
public class YourActivity extends Activity { 
    private String bladderUrl; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 

     bladderUrl = getString(R.string.bladder); 
... 
0

सबसे पहले, सुनिश्चित करें कि ये मान फ़ाइल strings.xml में हैं।

इसके अलावा, आप कन्स्ट्रक्टर से तारों तक नहीं पहुंच सकते हैं। आवेदन संदर्भ अभी तक शुरू नहीं हुआ है। आपको इसे बनाना चाहिए()।

एम्मानुएल

+0

मैं onCreate से मेरे निजी स्ट्रिंग उपयोग नहीं कर सकते() यह क्षेत्र से बाहर है ... –

+0

@Sheehan आलम तो सबसे अधिक संभावना आप अनुप्रयोग डिजाइन के साथ समस्या है। –

+0

मुझे यकीन नहीं है कि मैं समझता हूं। यह स्ट्रिंग एक गतिविधि में है लेकिन ऑनक्रेट() subclass या कुछ में है? बस अपनी स्ट्रिंग को उप-वर्ग में ले जाएं या इसे सुरक्षित बनाएं। तुम बस अपने निर्माता से आवेदन संदर्भ उपयोग नहीं कर सकते, तो आप इसे बाद में करना होगा। – Emmanuel

1

पहले:

public class YourActivity extends Activity { 
    private String bladderUrl = getString(R.string.bladder); 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 

... 

लेकिन अगर आप इस तरह ख़ाली करने की ज़रूरत है। आप strings.xml में अपने सभी तारों को रखना है। अवधि।

इमानुअल उत्तर आंशिक रूप से सही है। संदर्भ प्रारंभ होने पर आपको अपनी onCreate() विधि के अंदर स्ट्रिंग प्राप्त करनी होगी। उनका जवाब केवल आंशिक रूप से सही है क्योंकि उन्होंने यह भी बताया कि आपको स्ट्रिंग्स.एक्सएमएल के अंदर तार होना है जो सत्य नहीं है।

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

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