Wie kann ich in Kotlin Android auf Werte aus strings.xml zugreifen?
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)
}
}
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)}"
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>
Mufadilah Hermansyah
Ich habe es für die Titelleiste verwendet, aber meine App ist abgestürzt.
private var title: String = getString(R.string.profile)
Trennen Sie die Deklaration und Verwendung wie private var title: String und in der onCreate-Methode oder einer anderen Methode, bei der Sie auf title = “${getString(R.string.
– Sundeep Sharma
23. März um 12:05 Uhr
12059400cookie-checkSo greifen Sie auf Werte aus 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