将textView与Kotlin中的String进行比较

rot*_*esh 2 string android textview kotlin kotlin-android-extensions

我每次按下按钮时都试图更改我的Android应用程序上的文本视图
问题是"if"动作没有应用,好像它总是返回false
为什么会这样?

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!")
}}}
Run Code Online (Sandbox Code Playgroud)

Par*_*ker 6

Kotlin ==用于字符串比较

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

结构相等性由==操作(及其否定的对应物!=)检查.

此外,你试图比较a String和a TextView,它们是两种不同的类型,所以它们永远不会是相同的.尝试:

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

最后,作为建议,请不要使用lol您想要调试的代码中的变量名称.使用一个小变量名称可能会快速而容易,但如果它不具有描述性,那么您将在以后尝试调试它时遇到困难,从我的个人经验中获取它;)

  • 哦,你正在将字符串与textview进行比较,这就是原因,请参阅更新的答案 (2认同)