2017-07-01 2 views
2

Je suis en train de changer une vue de texte sur mon application Android chaque fois que j'appuie sur le bouton
problème est que les actions «si» ne sont pas appliquées, comme si elle renvoyait toujours faux
pourquoi est-ce?Comparer un texteVoir avec une chaîne dans Kotlin

override fun onCreate(savedInstanceState: Bundle?) { 
    super.onCreate(savedInstanceState) 
    setContentView(R.layout.activity_main) 
    val lol: String = "Hello World!" 
    button.setOnClickListener{ 
     if (textview.equals(lol)){ 
    textview.setText("yeah")} 
     else 
    textview.setText("Hello World!") 
}}} 

Répondre

6

Kotlin utilise == pour la comparaison de chaînes

https://kotlinlang.org/docs/reference/equality.html

égalité de construction est vérifiée par l'opération == (et son homologue niée !=).

De plus, vous essayez de comparer un String à un TextView, ils sont deux types différents, de sorte qu'ils ne seront jamais les mêmes. Essayez:

if(textview.text == lol) {...

Enfin, un conseil, ne pas utiliser les noms de variables comme lol dans le code vous avez l'intention d'avoir jamais debug. Il peut être rapide et facile d'utiliser un petit nom de variable, mais si ce n'est pas descriptif, vous allez avoir du mal à le déboguer plus tard, prenez-le de mon expérience personnelle;)

+0

error: Operator '= = 'ne peut pas être appliqué à' TextView! ' et 'String' –

+2

Oh, vous comparez une chaîne à un textview, c'est pourquoi, voir la mise à jour de la réponse – Parker