Referencia no resuelta a la function en Kotlin Android

Tengo la siguiente function onCreate en mi MainActivity.

 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) var selected_answer = 0 val btn_list = mutableListOf<ToggleButton>(button1, button2, button3, button4) for(i in btn_list){ i.setOnClickListener{ toggle_rest(btn_list.indexOf(i), btn_list) selected_answer = btn_list.indexOf(i)+1 } } fun toggle_rest(toCheck : Int, btn_list : List<ToggleButton>){ for (i in btn_list) { i.setChecked(btn_list.indexOf(i) == toCheck) } } question_txt.setText("Quiz will begin shortly!") } 

Cuando llamo toggle_rest , toggle_rest un error toggle_rest:Unresolved reference .

Debe definir la function toggle_rest antes de usar en su código, de lo contrario obtendrá un error de compilation de reference no resuelto :

 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) var selected_answer = 0 //Declare your function before you use fun toggle_rest(toCheck : Int, btn_list : List<ToggleButton>){ for (i in btn_list) { i.setChecked(btn_list.indexOf(i) == toCheck) } } val btn_list = mutableListOf<ToggleButton>(button1, button2, button3, button4) for(i in btn_list){ i.setOnClickListener{ toggle_rest(btn_list.indexOf(i), btn_list) selected_answer = btn_list.indexOf(i)+1 } } question_txt.setText("Quiz will begin shortly!") } 

También puede definir la function fuera del método onCreate (), como a continuación.

 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) var selected_answer = 0 val btn_list = mutableListOf<ToggleButton>(button1, button2, button3, button4) for(i in btn_list){ i.setOnClickListener{ toggle_rest(btn_list.indexOf(i), btn_list) selected_answer = btn_list.indexOf(i)+1 } } question_txt.setText("Quiz will begin shortly!") } fun toggle_rest(toCheck : Int, btn_list : List<ToggleButton>){ for (i in btn_list) { i.setChecked(btn_list.indexOf(i) == toCheck) } } 

Funciona según su expectativa.

  • Cualquier mejora de código en agregar / replace fragment
  • Smartcasting hacia y desde el tipo de plataforma en kotlin
  • Android (Kotlin): sobrescribe el nombre para la input del logging de llamadas
  • No se puede acceder a val en Kotlin
  • ¿Cómo establecer la pestaña BottomNavigationView pnetworkingeterminada en Kotlin?
  • Texto parpadeando en Android, con Kotlin más conciso
  • ¿Por qué ocurre un error de lanzamiento inteligente en kotlin?
  • ¿Por qué una reference no resuelta al intentar acceder a valores constantes?