2017-07-01 54 views
2

我试图在每次按下按钮时更改我的Android应用程序上的文本视图
问题在于'if'操作未应用,就好像它总是返回false
这是为什么?在Kotlin中比较textView与字符串

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

回答

6

科特林使用==为字符串比较

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

结构平等由==操作检查(及其否定 对应!=)。

而且,你想一个String比作TextView,它们是两个不同类型的,所以他们永远不会是相同的。尝试:

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

最后,作为一个忠告,不要在代码中使用的变量名像lol你打算曾经有调试。使用一个小的变量名可能会很快且容易,但如果它不具有描述性,那么稍后尝试调试它时会很糟糕,请从我个人的体验中获取它;)

+0

error:Operator'= ='不能应用于'TextView!'和'String' –

+2

哦,你正在比较一个字符串到textview,这就是为什么,看到更新的答案 – Parker