Progtwigtivamente hacer un imageView visible / invisible usando una variable

Tengo una function de Kotlin, que funciona como se espera cuando se llama explícitamente a un imageView. Sin embargo, cuando se usa una variable 'cellName', el código no se comstackrá.

Mi objective aquí es generar programáticamente el nombre de imageView y luego establecer / desactivar su visibilidad. ¿Podría alguien decirme dónde me estoy equivocando?

TIA

fun game(view: View) { var col = 1 var row = 0 var cellName = "" object : CountDownTimer(10000, 1000){ override fun onFinish() { Toast.makeText(applicationContext, "Time's Up", Toast.LENGTH_LONG).show() textView9.text = "Time: 0" } override fun onTick(p0: Long) { textView9.text = "Time: "+ p0 /1000 // Hide current position cellName = "imageView"+row+col imageView01.setVisibility(View.INVISIBLE) // Get next random position // Show new Position } }.start() } 

Entonces: imageView01.setVisibility (View.INVISIBLE) -> works cellName.setVisibility (View.INVISIBLE) – no comstack

Puede generar una identificación de vista (también R.id constante R.id ) utilizando Resources.getIdentifier() .

Una muestra de tu código (suponiendo que estés ejecutando dentro de una Activity ) podría ser:

 int row = 0; int col = 1; String name = "imageView" + row + col; int id = getResources().getIdentifier(name, "id", getPackageName()); ImageView imageView = findViewById(id); imageView.setVisibility(View.INVISIBLE); 

Lamento que esto esté en Java, no en Kotlin. Espero que puedas adaptarlo.

Su mejor opción podría ser simplemente poner todas las ImageViews en cuestión en un map donde el valor que tiene para "cellName" es la key. Luego simplemente recupere cada ImageView del map.

  • Kotlin Generics tipo personalizado con comodín
  • ¿Por qué no puedo usar lambda para la interfaz en kotlin?
  • Kotlin: itera sobre los componentes del object
  • el map de kotlin agrega valor si no es igual
  • ¿Cómo establecer "sourceCompatibility" para Kotlin y Gradle?
  • El @Rule> debe ser público ValidationError en Kotlin Junit test
  • ¿Agregar int e int? en Kotlin
  • ¿Qué hace el operador de flecha ("->") en Kotlin?
  • Ejecute la testing de expreso varias veces
  • Agregar vista personalizada a includedView
  • ¿Cómo inyectar variables primitivas en Kotlin?