如何使用 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"