我写了这句话:
String Mess = R.string.mess_1 ;
获取字符串值,但不是返回字符串,而是返回integer类型的id。如何获取它的字符串值?我提到了string.xml文件中的字符串值。
我写了这句话:
String Mess = R.string.mess_1 ;
获取字符串值,但不是返回字符串,而是返回integer类型的id。如何获取它的字符串值?我提到了string.xml文件中的字符串值。
当前回答
顺便说一下,也可以在strings.xml中创建字符串数组,如下所示:
<string-array name="tabs_names">
<item>My Tab 1</item>
<item>My Tab 2</item>
</string-array>
然后从你的Activity中你可以得到这样的引用:
String[] tab_names = getResources().getStringArray(R.array.tab_names);
String tabname1=tab_names[0];//"My Tab 1"
其他回答
试试这个
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
细节
Android Studio 3.1.4 Kotlin版本:1.2.60
Task
单线使用 最小的代码 使用编译器的建议
步骤1。应用程序()
获得应用程序上下文的链接
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()
}
}
步骤2。添加int扩展名
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()
结果
例如,如果您想将字符串值添加到按钮,简单使用
android:text="@string/NameOfTheString"
在strings.xml中定义的文本是这样的:
<string name="NameOfTheString">Test string</string>
在Android中使用getResources()之前必须引用Context名称。
String user=getApplicationContext().getResources().getString(R.string.muser);
OR
Context mcontext=getApplicationContext();
String user=mcontext.getResources().getString(R.string.muser);
**
我希望这个代码是有益的
**
String user = getResources().getString(R.string.muser);