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")
}
}
}
}
4 Réponses :
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.
if(empList.contains(input)) I think this will resolve your issue
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 :
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")
}
}
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")
}
}
C'est parce que vous comparez une
Stringà uneArrayList qui ne sera jamais évaluée àtrue.Que souhaitez-vous comparer dans votre code?