So greifen Sie auf Werte aus strings.xml zu

Lesezeit: 3 Minuten

Benutzer-Avatar
Dheeraj

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

Benutzer-Avatar
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

Benutzer-Avatar
Prat137

Wenn Sie dann außerhalb von oncreate darauf zugreifen

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

Benutzer-Avatar
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

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

Um strings.xml in meinem Code zu verwenden, gehe ich wie folgt vor:
textView.text = "${getString(R.string.my_text)}"

Benutzer-Avatar
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>

Benutzer-Avatar
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


1205940cookie-checkSo greifen Sie auf Werte aus strings.xml zu

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy