जवाबों:
इसे इस्तेमाल करे
String mess = getResources().getString(R.string.mess_1);
अपडेट करें
String string = getString(R.string.hello);
आप किसी स्ट्रिंग को प्राप्त करने के लिए getString(int)
या तो उपयोग कर सकते हैं getText(int)
। getText(int)
स्ट्रिंग पर लागू किसी भी समृद्ध पाठ स्टाइल को बनाए रखेगा।
संदर्भ: https://developer.android.com/guide/topics/resource/string-resource.html
getResouces().getInteger(R.integer.my_value_in_xml)
गतिविधि में:
this.getString(R.string.resource_name)
यदि गतिविधि में नहीं है, लेकिन संदर्भ तक पहुंच है:
context.getString(R.string.resource_name)
application.getString(R.string.resource_name)
this
जब आप गतिविधि में हों तो आपको शामिल करने की आवश्यकता नहीं है । बस getString()
आप चीजों को करने देंगे।
मैं इसका उपयोग कर रहा हूं:
String URL = Resources.getSystem().getString(R.string.mess_1);
Resources.getSystem()
आपको एप्लिकेशन संसाधन नहीं देता है, लेकिन केवल एंड्रॉइड है। इसका उपयोग संसाधनों की तरह नहीं किया जाना चाहिए string
। मैंने इस समाधान का उपयोग किया और एप्लिकेशन क्रैश हो गया, notfoundexception
जिसे फेंकना समझना मुश्किल था (जैसा कि संसाधन मौजूद है strings.xml
)।
वैसे, स्ट्रिंग स्ट्रिंग को बनाना संभव है।
<string-array name="tabs_names">
<item>My Tab 1</item>
<item>My Tab 2</item>
</string-array>
और फिर अपनी गतिविधि से आप संदर्भ प्राप्त कर सकते हैं जैसे:
String[] tab_names = getResources().getStringArray(R.array.tab_names);
String tabname1=tab_names[0];//"My Tab 1"
केवल भविष्य के संदर्भों के लिए।
में स्ट्रिंग संसाधनों प्रलेखन यह कहते हैं:
आप स्ट्रिंग को पुनः प्राप्त करने के लिए getString (int) या getText (int) का उपयोग कर सकते हैं। getText (int) स्ट्रिंग पर लागू किसी भी समृद्ध पाठ स्टाइल को बनाए रखेगा।
यदि आप किसी ऐसी गतिविधि में हैं जिसका आप उपयोग कर सकते हैं
getResources().getString(R.string.whatever_string_youWant);
यदि आप किसी गतिविधि में नहीं हैं तो इसका उपयोग करें:
getApplicationContext.getResource().getString(R.String.Whatever_String_you_want)
आप आवेदन के संदर्भ के लिए लिंक प्राप्त करें
class MY_APPLICATION_NAME: Application() {
companion object {
private lateinit var instance: MY_APPLICATION_NAME
fun getAppContext(): Context = instance.applicationContext
}
override fun onCreate() {
instance = this
super.onCreate()
}
}
inline fun Int.toLocalizedString(): String = MY_APPLICATION_NAME.getAppContext().resources.getString(this)
strings.xml
<resources>
<!-- ....... -->
<string name="no_internet_connection">No internet connection</string>
<!-- ....... -->
</resources>
स्ट्रिंग मान प्राप्त करें:
val errorMessage = R.string.no_internet_connection.toLocalizedString()
यू लिख जबकि R
। आप R.java
ग्रहण द्वारा निर्मित वर्ग का उल्लेख कर रहे हैं , उस संसाधन का उपयोग करें getResources().getString()
और पास करें id
जिससे आप getString()
विधि के अंदर पढ़ने का प्रयास कर रहे हैं ।
उदाहरण : String[] yourStringArray = getResources().getStringArray(R.array.Your_array);
**
मुझे उम्मीद है कि यह कोड फायदेमंद है
**
String user = getResources().getString(R.string.muser);
अपडेट करें
getString(R.string.some_string_id)
दोनों में Activity
या उपयोग कर सकते हैं Fragment
।Context.getString(R.string.some_string_id)
जहां आपके पास getString()
विधि तक सीधी पहुंच नहीं है । की तरह Dialog
।समस्या वह है जहाँ आपकी Context
पहुँच नहीं है , जैसे आपकी Util
कक्षा में एक विधि ।
कॉनटेक्स्ट के बिना विधि नीचे मान लें।
public void someMethod(){
...
// can't use getResource() or getString() without Context.
}
अब आप Context
इस पद्धति में एक पैरामीटर के रूप में पास होंगे और उपयोग करेंगेgetString().
public void someMethod(Context context){
...
context.getString(R.string.some_id);
}
मैं क्या कर रहा हूँ
public void someMethod(){
...
App.getRes().getString(R.string.some_id)
}
क्या? अपने ऐप में कहीं भी उपयोग करना बहुत सरल है!
तो यहाँ एक बोनस अद्वितीय समाधान है जिसके द्वारा आप संसाधनों को कहीं से भी एक्सेस कर सकते हैं Util class
।
import android.app.Application;
import android.content.res.Resources;
public class App extends Application {
private static App mInstance;
private static Resources res;
@Override
public void onCreate() {
super.onCreate();
mInstance = this;
res = getResources();
}
public static App getInstance() {
return mInstance;
}
public static Resources getResourses() {
return res;
}
}
अपने manifest.xml
<application
टैग में नाम फ़ील्ड जोड़ें ।
<application
android:name=".App"
...
>
...
</application>
अब आप जाने के लिए अच्छे हैं।
getString (R.string.your_string) का परिणाम मिलता है
String myString = getResources().getString(R.string.here_your_string_name);
अब आपका स्ट्रिंग myString में कॉपी हो गया है। मुझे उम्मीद है कि यह आपके लिए काम करेगा।
आप सीधे स्ट्रिंग्स.xml में परिभाषित मूल्य पढ़ सकते हैं:
<resources>
<string name="hello">Hello StackOverflow!</string>
</resources>
और एक चर में सेट करें:
String mymessage = getString(R.string.hello);
लेकिन हम स्ट्रिंग को दृश्य में परिभाषित कर सकते हैं:
<TextView
android:id="@+id/myTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello"/>
this.getString(R.string.some_id)
यदि आप पहले से ही एकContext
(गतिविधि या सेवा) में हैं, तो आप इसे सरल बना सकते हैं ।