OnClick y TextView en Android Studio 3

Estoy haciendo un juego de clicker básico. Para quienes no son usuarios de telefonía mobile: (En el time en que se hace clic en el button, se agrega 1 al valor de la vista de text) que comienza en 0, por supuesto. Esto es lo que tengo, pero hay un error en "como" que dice que este reparto nunca tendrá éxito (aplastando mis sueños)

fun click(v: View){ textView.text as Int + 1 } 

Oh si. No funcionará porque textView.text es una CharSequence , que nunca podrá convertir a Int . Esto se vuelve aún más complicado porque no se puede tratar una CharSequence como si fuera una String . Lo que debe hacer es convertir el text en una String , analizar el número actual en la vista de text, convertirlo en una Int y luego volver a agregarlo al object textView .

Algo como esto:

 fun click(v: View){ val currentText = textView.text.toString() //Make sure that this will always be a number or you'll get an exception! val currentNumber = currentText.toInt() textView.text = currentNumber.plus(1).toString() } 

También puede hacerlo todo en una sola línea, pero lo anterior es mucho más limpio:

 textView.text = textView.text.toString().toInt().plus(1).toString() 

El comstackdor le dice que es imposible convertir el text (CharSequence) a un Int como lo menciona el usuario2759839.

Pero más allá del simple error de syntax, no debería tener que leer nada de textView. En vista general, los objects no deberían contener el estado. Deben capturar la input del usuario o mostrar información.

Lo que debe hacer es crear una variable privada para mantener el estado de conteo de clics, actualizar eso y luego simplemente usar TextView para mostrar el valor.

algo así.

 private var clickCount = 0 fun click(v: View) { clickCount += 1 textView.text = "$clickCount" } 

Esto tiene el beneficio adicional de que no tiene que preocuparse por la exception que se puede lanzar si el toInt () fallaba.

  • ¿Cómo crear un button en Kotlin que abre una nueva actividad (Android Studio)?
  • Prueba unitaria de la function de extensión de Kotlin en las classs de Android SDK
  • La biblioteca de Android no puede comstackr kotlin
  • Clases de Kotlin sin llaves
  • La function Kotlin requiere nada, pero se define como un tipo diferente
  • Anulación accidental: las siguientes declaraciones tienen la misma firma de JVM
  • Por qué los numbers que aceptan nulos no son para preservar la identidad
  • Kotlin || ¿No puedo agregar la biblioteca a Mi aplicación?
  • ¿Cuál es el equivalente de este código de java a kotlin
  • Cómo crear callbacks de funciones anidadas como anko - syntax DSL Kotlin