Kotlin: el operador '==' no se puede aplicar a '¡Editable!' y 'String' al comparar cadenas

Entonces, comencé a trabajar con Kotlin en Android Studio 3.0 Canary 7 y estaba llevando a cabo una operación simple de verificar si la cadena está vacía o no.

Aquí está mi layout simple:

<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Click me" android:id="@+id/btnClick"/> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Write something to print" android:id="@+id/edtTxt"/> 

y con MainActivity.kt he debajo cosas

 class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) btnClick.setOnClickListener { val message=edtTxt.text if (message == "") longToast("Come on! Write something") else longToast("You've written $message") } } } 

Inicialmente escribí el código dentro de clicklistener como

 val message=edtTxt.text if (message.equals("")) //this here longToast("Come on! Write something") else longToast("You've written $message") 

Más tarde, el IDE sugirió replacelo con

Sugerencia de IDE

y traté de hacerlo con if (message=="") pero eso comenzó a mostrar Operator '==' no se puede aplicar a 'Editable!' y 'String' cuando se compara el error de cadena . Esto es totalmente confuso

Mis dudas aquí:

  • ¿Qué significa esto realmente?
  • ¿Cómo puedo aplicar lo que IDE sugirió o hay alguna solución para hacer esto?

edtTxt.text es solo un reemploop para editTxt.getText() de editTxt.getText() . Entonces, básicamente, esto tiene que convertirse a String antes de usar == operator.

Si desea get el String del object Editable use el método toString() .

 val message=edtTxt.text.toString() 
 btnClick.setOnClickListener { // edtTxt.text type of EditText val message=edtTxt.text.toString() if (message == "") longToast("Come on! Write something") else longToast("You've written $message") } 
  • Omitir si está vacío en el complemento Kotlin Maven
  • ¿Cómo puedo probar AsyncTask no llamado?
  • ¿Por qué para el loop con comstackciones de tres puntos?
  • Java Wildcard-types vs Kotlin Star-projection
  • Eclipse RCP: export de PDE y Kotlin
  • ¿Cómo obtengo los encabezados de respuesta con RxAndroid + Retrofit en Kotlin?
  • ¿Cuál es la forma más rápida / más simple de calcular una media mobile en Kotlin?
  • Kotlin Android imprime en la console
  • Protocolo Buffer de soporte gradle para Android Kotlin no funciona?
  • Declarar Literales de Función con parameters de input generics en Kotlin
  • Desactivar cheque para usar el package 'kotlin' en Gradle