0
votes

ma déclaration if ne se produit jamais vraie dans kotlin android

si la déclaration ne se produit jamais vraie. alors aidez-moi s'il vous plaît. J'ai essayé de changer certaines choses et j'espère que cela fonctionnera, mais cela ne l'a jamais fait et seule la déclaration fonctionne.

package com.example.managemntsystem

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        var input = editText.text
        var empList = arrayListOf<String>("jacob", "raf", "boss", "john")


        button.setOnClickListener {

            if (input == emplist) {

                textView2.setText("WORKING")

            }else{

                textView2.setText("Not working")

            }
        }


    }
}


2 commentaires

C'est parce que vous comparez une String à une ArrayList qui ne sera jamais évaluée à true .


Que souhaitez-vous comparer dans votre code?


4 Réponses :


4
votes

Utilisez ceci à la place:

if (empList.contains(input.toString()))

Ceci vérifiera si le contenu du EditText est égal à l'un des éléments de la liste. N'oubliez pas d'appeler la méthode toString () lorsque vous voulez le contenu EditText.


0 commentaires

3
votes

Vous pouvez également utiliser l'opérateur dans :

if (input in empList)


0 commentaires

0
votes
if(empList.contains(input))
I think this will resolve your issue

0 commentaires

0
votes

La raison en est que votre var input = editText.text n'est plus jamais défini (même s'il s'agit d'une var ), donc dans ce cas, ce n'est pas différent d'un val. Vous devez soit le réaffecter, soit utiliser directement .text :

  1. Réglez-le à nouveau:

var input = editText.text var empList = arrayListOf ("jacob", "raf", "boss", "john")

button.setOnClickListener {

if (editText.text == emplist) {

    textView2.setText("WORKING")

}else{

    textView2.setText("Not working")

        }
}
  1. Ou ne pas utiliser de saisie du tout et utiliser le texte lui-même:

    button.setOnClickListener {
    
    input = editText.text // add this line
    
    f (input == emplist) {
    
            textView2.setText("WORKING")
    
        }else{
    
            textView2.setText("Not working")
    
        }
    }
    


0 commentaires