我的if语句在kotlin android中永远不会发生

问题描述 投票:0回答:4

如果声明永远不会发生。所以请帮帮我。我尝试改变一些东西,并希望它会工作,但它从来没有,只有其他声明工作。

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")

            }
        }


    }
}
android kotlin
4个回答
3
投票

改用它:

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

这将检查EditText的内容是否等于任何列表项。当您想要EditText内容时,请记得调用toString()方法。


3
投票

您还可以使用in运算符:

if (input in empList)

0
投票
if(empList.contains(input))

我认为这将解决您的问题


0
投票

原因是你的var input = editText.text永远不会再次设置(即使它是一个var),所以在这种情况下,它与val没有区别。您需要重新分配它或直接使用.text

  1. 再次设置:

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

button.setOnClickListener {

input = editText.text // add this line

f (input == emplist) {

        textView2.setText("WORKING")

    }else{

        textView2.setText("Not working")

    }
}
  1. 或者根本不使用输入并使用文本本身: button.setOnClickListener { if (editText.text == emplist) { textView2.setText("WORKING") }else{ textView2.setText("Not working") } }
© www.soinside.com 2019 - 2024. All rights reserved.