উত্তর:
এটা চেষ্টা কর
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/resources/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()
অ্যান্ড্রয়েডে ব্যবহারের আগে আপনাকে অবশ্যই প্রসঙ্গের নামটি উল্লেখ করতে হবে ।
String user=getApplicationContext().getResources().getString(R.string.muser);
অথবা
Context mcontext=getApplicationContext();
String user=mcontext.getResources().getString(R.string.muser);
আপনি যদি কোনও কার্যকলাপে থাকেন তবে আপনি ব্যবহার করতে পারেন
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>
এখন আপনি যেতে ভাল।
String myString = getResources().getString(R.string.here_your_string_name);
এখন আপনার স্ট্রিংটি মাই স্ট্রিংয়ে অনুলিপি করা হয়েছে। আমি আশা করি এটি আপনার পক্ষে কাজ করবে।
আপনি স্ট্রিং.এক্সএমএলে সংজ্ঞায়িত মানটি সরাসরি পড়তে পারেন:
<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
(ক্রিয়াকলাপ বা পরিষেবা) এ থাকলে আপনি এটি সরল করতে পারেন ।