Jawaban:
Coba ini
String mess = getResources().getString(R.string.mess_1);
MEMPERBARUI
String string = getString(R.string.hello);
Anda dapat menggunakan salah satu getString(int)
atau getText(int)
untuk mengambil string. getText(int)
akan mempertahankan gaya teks kaya apa pun yang diterapkan pada string.
Referensi: https://developer.android.com/guide/topics/resources/string-resource.html
getResouces().getInteger(R.integer.my_value_in_xml)
Dalam Aktivitas:
this.getString(R.string.resource_name)
Jika tidak dalam kegiatan tetapi memiliki akses ke konteks:
context.getString(R.string.resource_name)
application.getString(R.string.resource_name)
this
saat Anda berada di Aktivitas. Cukup getString()
akan membiarkan Anda melakukan sesuatu.
Saya menggunakan ini:
String URL = Resources.getSystem().getString(R.string.mess_1);
Resources.getSystem()
tidak memberi Anda sumber daya aplikasi, tetapi hanya android. Seharusnya tidak digunakan untuk sumber daya seperti string
. Saya menggunakan solusi ini dan aplikasi macet, melempar notfoundexception
yang sulit dimengerti (karena sumber daya ada di strings.xml
).
By the way, juga dimungkinkan untuk membuat array string di strings.xml seperti ini:
<string-array name="tabs_names">
<item>My Tab 1</item>
<item>My Tab 2</item>
</string-array>
Dan kemudian dari Aktivitas Anda, Anda bisa mendapatkan referensi seperti:
String[] tab_names = getResources().getStringArray(R.array.tab_names);
String tabname1=tab_names[0];//"My Tab 1"
Hanya untuk referensi di masa mendatang.
Dalam dokumentasi sumber daya String dikatakan:
Anda bisa menggunakan getString (int) atau getText (int) untuk mengambil string. getText (int) akan> mempertahankan gaya teks kaya apa pun yang diterapkan pada string.
Anda harus merujuk nama Konteks sebelum menggunakan getResources()
di Android.
String user=getApplicationContext().getResources().getString(R.string.muser);
ATAU
Context mcontext=getApplicationContext();
String user=mcontext.getResources().getString(R.string.muser);
Jika Anda berada dalam suatu kegiatan yang dapat Anda gunakan
getResources().getString(R.string.whatever_string_youWant);
Jika Anda tidak dalam suatu Aktivitas, gunakan ini:
getApplicationContext.getResource().getString(R.String.Whatever_String_you_want)
Dapatkan tautan ke konteks aplikasi Anda
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>
Dapatkan nilai string:
val errorMessage = R.string.no_internet_connection.toLocalizedString()
selagi kamu menulis R
. Anda merujuk ke R.java
kelas yang dibuat oleh eclipse, gunakan getResources().getString()
dan lulus id
dari sumber yang Anda coba baca di dalam getString()
metode.
Contoh: String[] yourStringArray = getResources().getStringArray(R.array.Your_array);
**
Saya harap kode ini bermanfaat
**
String user = getResources().getString(R.string.muser);
Memperbarui
getString(R.string.some_string_id)
keduanya Activity
atau Fragment
.Context.getString(R.string.some_string_id)
mana Anda tidak memiliki akses langsung ke getString()
metode. Seperti Dialog
.Masalahnya adalah di mana Anda tidak memiliki Context
akses , seperti metode di Util
kelas Anda .
Asumsikan metode di bawah ini tanpa Konteks.
public void someMethod(){
...
// can't use getResource() or getString() without Context.
}
Sekarang Anda akan lulus Context
sebagai parameter dalam metode ini dan gunakangetString().
public void someMethod(Context context){
...
context.getString(R.string.some_id);
}
Apa yang saya lakukan adalah
public void someMethod(){
...
App.getRes().getString(R.string.some_id)
}
Apa? Sangat mudah digunakan di mana saja di aplikasi Anda!
Jadi di sini adalah solusi unik Bonus di mana Anda dapat mengakses sumber daya dari mana saja seperti 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;
}
}
Tambahkan bidang nama ke manifest.xml
<application
tag Anda .
<application
android:name=".App"
...
>
...
</application>
Sekarang kamu baik untuk pergi.
getString (R.string.your_string) dapatkan hasilnya
String myString = getResources().getString(R.string.here_your_string_name);
Sekarang string Anda disalin ke myString. Saya harap ini akan berhasil untuk Anda.
Anda dapat membaca secara langsung nilai yang didefinisikan dalam strings.xml:
<resources>
<string name="hello">Hello StackOverflow!</string>
</resources>
dan diatur ke dalam variabel:
String mymessage = getString(R.string.hello);
tapi kita bisa mendefinisikan string ke tampilan:
<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)
jika Anda sudah berada dalamContext
(Aktivitas atau Layanan).