2012-10-21 20 views
5

प्रकार के लिए अपरिभाषित है, मैं इस त्रुटि को कैसे ठीक करूं। नीचे दिए गए सभी तीन तारों को निम्न त्रुटि मिलती है "विधि getString (int) प्रकार ऐप्स के लिए अपरिभाषित है"। कृपया मदद करें, ऐसे नोब im।विधि getString (int) प्रकार

package com.actionbarsherlock.sample.fragments; 

import android.content.Context; 
import android.content.res.Resources; 


public final class Apps { 
/** 
* Our data, part 1. 
*/ 
public static final String[] TITLES = 
{ 
     "title1", 
     "title2", 
     "title3" 
}; 

/** 
* Our data, part 2. 
*/ 
public static final String[] DIALOGUE = { 

    getString(R.string.text1), 

    getString(R.string.string2), 

    getString(R.string.string3) 

}; 
} 
+0

आप एक गैर-मौजूदा विधि को कॉल करने का प्रयास कर रहे हैं। आप जो भी करने की कोशिश कर रहे हैं उसे जानने के बिना इसे ठीक करने में आपकी मदद करने के लिए वास्तव में बहुत कुछ नहीं कर सकता है। – Vulcan

+0

क्या आप कुछ विस्तार करना चाहते हैं? आप subclass करने की कोशिश कर रहे हैं? – RyanG

+0

इस व्यक्ति ने मुझे मदद करने वाले व्यक्ति को कहा "गेटस्ट्रिंग गतिविधि वर्ग से है, इसलिए आपकी कक्षा को गतिविधि से प्राप्त करने की आवश्यकता है, या आपको कक्षा से गेटस्ट्रिंग को कॉल करने की आवश्यकता है जो पहले ही गतिविधि से विरासत में है।" – idroid8

उत्तर

5

पहले getString एक स्थिर विधि, आप एक स्थिर संदर्भ यह नहीं किया जा सकता है में यह बुला रहे हैं नहीं है।

दूसरा getString विधि Resources वर्ग का हिस्सा है, आपकी कक्षा Resources कक्षा का विस्तार नहीं करती है, इसलिए विधि नहीं मिल सकती है।

मुझे लगता है कि Resources कक्षा का उदाहरण Apps कक्षा में इसके कन्स्ट्रक्टर का उपयोग करके आपका सबसे अच्छा विकल्प होगा।

कुछ इस तरह:

public final class Apps { 

    public Apps(Resources r){ 
    DIALOGUE = new String[]{ 
     r.getString(R.string.text1), 
     r.getString(R.string.string2), 
     r.getString(R.string.string3)}; 
    } 


/** 
* Our data, part 1. 
*/ 
public static final String[] TITLES = 
{ 
     "title1", 
     "title2", 
     "title3" 
}; 

/** 
* Our data, part 2. 
*/ 
public static String[] DIALOGUE; 
} 
+0

त्रुटि से छुटकारा पाता है लेकिन मुझे कुछ और ठीक करना होगा, मैं परिणामों के साथ ब्रब करूँगा :) – idroid8

+0

mhhh जब मैं एक श्रेणी का चयन करता हूं तो ऐप शीर्षक ऐप फोर्स बंद कर देता है। मैं और अधिक खेलता हूं लेकिन आपका जवाब सबसे उपयोगी था। – idroid8

24

Context context

का एक उदाहरण से पारित और फिर

context.getResources().getString(R.string.text1) 

का उपयोग यहाँ context है अपनी वर्तमान गतिविधि के अंतर्गत आता है।

+0

इसने मेरी समस्या हल की, धन्यवाद – Alaa

+0

मैंने इसका अनुसरण किया और Preferences.getBoolean (getString (R.string.pref_mypreference), false) को प्राथमिकताएं .getBoolean (*** getContext()। *** getString (R.string.pref_mypreference), झूठा) और बॉब मेरा चाचा बन गया: डी (*** शाब्दिक नहीं है, लेकिन दिखा रहा है कि केवल क्या बदल गया);) –

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