So greifen Sie in Kotlin auf Werte von Android “strings.xml” zu
Lesezeit: 3 Minuten
Dheeraj
Wie kann ich auf Werte von Android zugreifen Zeichenfolgen.xml mit Kotlin?
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([email protected])
}
}
Genau wie in Java.
– nhaarman
2. Juli 2017 um 13:59 Uhr
Sie haben in Ihrem Beispiel bereits auf Layouts und IDs verwiesen. Denken Sie auch daran, dass Sie Java-Dateien mit Strg + Umschalt + Alt + K in Kotlin konvertieren können. Auf kotl.in ist auch eine umfangreiche Dokumentation zu Methoden verfügbar
– Allan W
3. Juli 2017 um 1:54 Uhr
vielen dank für die hilfe..
– Dheeraj
24. September 2017 um 15:34 Uhr
Robin
Der Zugriff auf Zeichenfolgenwerte in Kotlin funktioniert genauso wie in Java, nur mit der Kotlin-Syntax:
val string: String = getString(R.string.your_string_id)
(Dies setzt voraus, dass sich Ihr Code in einem Android befindet Activityoder eine ähnliche Klasse, die von erbt Context. Wenn nicht, müssen Sie eine bekommen Context Beispiel von irgendwo, und ändern Sie es in myContext.getString(...).)
Dies könnte produzieren Null
– IgorGanapolsky
23. Oktober 2018 um 17:34 Uhr
@IgorGanapolsky Nun ja, technisch könnte es, aber das ist ein Programmierfehler oder etwas stimmt mit dem Build-Prozess nicht, wenn dies der Fall ist. Dieser Aufruf, der null zurückgibt, ist nicht etwas, von dem Sie sich auf sinnvolle Weise erholen könnten, also wird null hier in Java nie überprüft, und Sie müssen es glücklicherweise auch nicht in Kotlin.
– Robin
23. Oktober 2018 um 20:12 Uhr
Ich habe versucht, diese Funktion zu verwenden, Android Studio konnte sie nicht einmal finden
– Vogelbeere
6. April 2020 um 2:31 Uhr
@Vogelbeere getString definiert ist Context. Mein Beispielcode wurde unter der Annahme geschrieben, dass Sie sich in einem Android befinden Activitydie erbt von Contextaber wenn Sie es woanders brauchen, müssen Sie eine haben Context irgendwo erhältlich. Sie müssen das Beispiel ändern myContext.getString(...) In diesem Fall. (Haftungsausschluss – habe schon lange keine Android-Entwicklung mehr gemacht, Details könnten sich geändert haben)
– Robin
6. April 2020 um 13:32 Uhr
@Robin ja, ich habe das herausgefunden, nachdem ich meinen Kommentar geschrieben hatte, habe versucht, es in einer Objektklasse zu tun, wurde nur nicht explizit angegeben
– Vogelbeere
7. April 2020 um 0:34 Uhr
Prat137
Wenn Sie dann außerhalb von oncreate darauf zugreifen
Resources.getSystem().getString(R.string.btn_yes)
Dhivysch
Wenn Sie auf das gesamte Array zugreifen müssen:
val data= resources.getStringArray(R.array.array_id)
Wenn es hilft, habe ich es so gemacht – Sie benötigen den Anwendungskontext und auch den Import der R-Klasse
Um strings.xml in meinem Code zu verwenden, gehe ich wie folgt vor: textView.text = "${getString(R.string.my_text)}"
Ola Strom
@Robins Antwort hat fast für mich funktioniert, aber wenn ich nicht hinzufüge this.resources Vor dem getString(R.string.tv) meine App stürzt einfach immer ab.
Um also innerhalb von auf einen Zeichenfolgenwert zuzugreifen Zeichenfolgen.xml Datei in Kotlin verwenden: this.resources.getString(R.string.tv)
Oder einfach: resources.getString(R.string.tv)
zaerymoghaddam
Verwenden Sie das Format – R.string.string_name
Verweisen Sie explizit darauf, zum Beispiel:
R.string.loadingText,
Angenommen, Ihre XML-Datei enthält Folgendes als Teil der Ressourcen:
<string name="loadingText">The actual text to be displayed</string>
Gibt dies nicht die Integer-ID dieser XML-Zeichenfolge zurück und nicht den Inhalt der Zeichenfolge selbst?
– Marios Yiannakou
12. Juli 2021 um 14:20 Uhr
14321700cookie-checkSo greifen Sie in Kotlin auf Werte von Android “strings.xml” zuyes
Genau wie in Java.
– nhaarman
2. Juli 2017 um 13:59 Uhr
Sie haben in Ihrem Beispiel bereits auf Layouts und IDs verwiesen. Denken Sie auch daran, dass Sie Java-Dateien mit Strg + Umschalt + Alt + K in Kotlin konvertieren können. Auf kotl.in ist auch eine umfangreiche Dokumentation zu Methoden verfügbar
– Allan W
3. Juli 2017 um 1:54 Uhr
vielen dank für die hilfe..
– Dheeraj
24. September 2017 um 15:34 Uhr