我写了这句话:
String Mess = R.string.mess_1 ;
获取字符串值,但不是返回字符串,而是返回integer类型的id。如何获取它的字符串值?我提到了string.xml文件中的字符串值。
我写了这句话:
String Mess = R.string.mess_1 ;
获取字符串值,但不是返回字符串,而是返回integer类型的id。如何获取它的字符串值?我提到了string.xml文件中的字符串值。
当前回答
在活动:
this.getString(R.string.resource_name)
如果不在活动中,但可以访问上下文:
context.getString(R.string.resource_name)
application.getString(R.string.resource_name)
其他回答
例如,如果您想将字符串值添加到按钮,简单使用
android:text="@string/NameOfTheString"
在strings.xml中定义的文本是这样的:
<string name="NameOfTheString">Test string</string>
细节
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()
结果
在活动:
this.getString(R.string.resource_name)
如果不在活动中,但可以访问上下文:
context.getString(R.string.resource_name)
application.getString(R.string.resource_name)
你可以使用下面的代码:
getText(R.string.mess_1);
基本上,您需要将资源id作为参数传递给getText()方法。
String myString = getResources().getString(R.string.here_your_string_name);
现在你的字符串被复制到myString中。我希望这对你有用。