如何在 Kotlin 中从 Android "strings.xml"访问值



如何使用 Kotlin 访问 Android字符串中的值.xml

class MainActivity : AppCompatActivity(), View.OnClickListener {
override fun onClick(p0: View?) {
getToastCalled("")
TODO("not implemented")
}
private fun getToastCalled(message: String) {
TODO("not implemented")
}
var btn: Button? = null;
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
var tv_name=findViewById(R.id.tv) as TextView
btn=findViewById(R.id.button) as Button
tv_name.setText(KtTest().name);
(btn as Button).setOnClickListener(MainActivity@this)
}
}

在 Kotlin 中访问字符串值的工作方式与在 Java 中完全相同,只是使用 Kotlin 语法:

val string: String = getString(R.string.your_string_id)

(这假设您的代码位于 AndroidActivity或继承自Context的类似类中。如果没有,则需要从某个位置获取Context实例,并将其更改为myContext.getString(...)

如果你在oncreate之外访问它,那么

Resources.getSystem().getString(R.string.btn_yes)  

如果需要访问整个数组:

val data= resources.getStringArray(R.array.array_id)

如果它有帮助,这就是我的做法 - 您需要应用程序上下文并导入 R 类

applicationContext.getString(R.string.text_string)
import com.example.yourpackagename.R

要使用字符串.xml在我的代码中,我执行以下操作:
textView.text = "${getString(R.string.my_text)}"

@Robin的答案几乎对我有用,但是如果我在getString(R.string.tv)之前不添加this.resources,我的应用程序就会不断崩溃。

因此,要从Kotlin中的字符串.xml文件中访问字符串值,请使用:
this.resources.getString(R.string.tv)

或者简单地:
resources.getString(R.string.tv)

你可以通过以下方式访问 Kotlin 中的字符串值

val string:String = resources.getString(R.string.variable_name)

或使用

val string: String = getString(R.string.variable_name)

有关更多详细信息,您可以参考 Android 开发者文档

在我的回收器视图适配器中,在 ViewHolder 类中,我引用字符串.xml像这样;

binding.myText.setText(R.string.my_text)

使用格式 - R.string.string_name

显式引用它,例如:

R.string.loadingText,

假设您的 XML 文件具有以下内容作为资源的一部分:

<string name="loadingText">The actual text to be displayed</string>

我将其用于标题栏,但我的应用程序崩溃了。

private var title: String = getString(R.string.profile)

您可以简单地通过以下方式访问字符串值 -"@string/variable_name".

例如 - 如果字符串.xml包含类似<string name="app_name">Tip Time</string>的条目,那么您可以使用 - 访问它 -

"@string/app_name"

最新更新