Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

218
Vistas
Android - ¿Cómo lograr setOnClickListener en Kotlin?

Quería saber cómo configuramos onClickListener básico en Kotlin para el desarrollo de Android.

over 4 years ago · Santiago Trujillo
32 Respuestas
Responde la pregunta

0

Para usar varias identificaciones:

 textview1.setOnClickListener(clickListener) textview2.setOnClickListener(clickListener)

Crear clase anónima:

 private val clickListener: View.OnClickListener = View.OnClickListener { view -> when (view.id) { R.id.textview1-> { Toast.makeText(this, "Clicked 1", Toast.LENGTH_SHORT).show() } R.id.textview2-> { Toast.makeText(this, "Clicked 2", Toast.LENGTH_SHORT).show() } } }
over 4 years ago · Santiago Trujillo Denunciar

0

Primero debe obtener la referencia a la Vista (por ejemplo, Button, TextView, etc.) y establecer un OnClickListener en la referencia usando el método setOnClickListener()

 // get reference to button val btn_click_me = findViewById(R.id.btn_click_me) as Button // set on-click listener btn_click_me.setOnClickListener { Toast.makeText(this@MainActivity, "You clicked me.", Toast.LENGTH_SHORT).show() }

Consulte el ejemplo de Kotlin SetOnClickListener para ver un ejemplo completo de Android de Kotlin donde un botón está presente en una actividad y OnclickListener se aplica al botón. Cuando hace clic en el botón, se ejecuta el código dentro del bloque SetOnClickListener.

Actualizar

Ahora puede hacer referencia al botón directamente con su ID al incluir la siguiente declaración de importación en el archivo de Clase. Documentación .

 import kotlinx.android.synthetic.main.activity_main.*

y luego para el boton

 btn_click_me.setOnClickListener { // statements to run when button is clicked }

Consulte el Tutorial de Android Studio .

over 4 years ago · Santiago Trujillo Denunciar

0

Use este código para agregar onClickListener en Kotlin

 val button : Button = getView()?.findViewById<Button>(R.id.testButton) as Button button.setOnClickListener {view -> Toast.makeText(context, "Write your message here", Toast.LENGTH_LONG).show() } }
over 4 years ago · Santiago Trujillo Denunciar

0

Primero busque el botón, para evitar el lanzamiento desde la View , puede usar <> de la siguiente manera:

 val button = findViewById<Button>(R.id.button);

Una vez que tenga una instancia del Button , ahora puede adjuntar el detector de clics de la siguiente manera:

 button.setOnClickListener { // You code here }
over 4 years ago · Santiago Trujillo Denunciar

0

Use el código a continuación

 val textview = findViewById<TextView>(R.id.textview) textview.setOnClickListener(clickListener) val button = findViewById<Button>(R.id.button) button.setOnClickListener(clickListener)

código clickListener .

 val clickListener = View.OnClickListener {view -> when (view.getId()) { R.id.textview -> firstFun() R.id.button -> secondFun() } }
over 4 years ago · Santiago Trujillo Denunciar

0

Usas así onclickListener en kotlin

 val fab = findViewById(R.id.fab) as FloatingActionButton fab.setOnClickListener { ... }
over 4 years ago · Santiago Trujillo Denunciar

0

Supongamos que tiene textView para hacer clic

 text_view.text = "Hello Kotlin"; text_view.setOnClickListener { val intent = Intent(this@MainActivity, SecondActivity::class.java) intent.putExtra("key", "Kotlin") startActivity(intent) }
over 4 years ago · Santiago Trujillo Denunciar

0

Aquí hay un ejemplo de cómo usar onClickListener en Kotlin

 button1.setOnClickListener(object : View.OnClickListener{ override fun onClick(v: View?) { //Your code here }})
over 4 years ago · Santiago Trujillo Denunciar

0

Veo muchas sugerencias aquí, pero a esta colección le falta lo siguiente.

 button.setOnClickListener(::onButtonClicked)

y en la clase actual tenemos un método como este:

 private fun onButtonClicked(view: View) { // do stuff }
over 4 years ago · Santiago Trujillo Denunciar

0

findViewById<Button>(R.id.signUp)?.setOnClickListener( Toast.makeText(mActivity, "Button Clicked", Toast.LENGTH_LONG).show() )
over 4 years ago · Santiago Trujillo Denunciar

0

Simplemente puede obtener OnClickListener en kotlin

 view1.setOnClickListener{ //body }
over 4 years ago · Santiago Trujillo Denunciar

0

**i have use kotlin-extension so i can access directly by button id:** btnSignIN.setOnClickListener { if (AppUtils.isNetworkAvailable(activity as BaseActivity)) { if (checkValidation()) { hitApiLogin() } } }
over 4 years ago · Santiago Trujillo Denunciar

0

Método 1:

 txtNext.setOnClickListener { //Code statements }

Método 2:

 class FirstActivity : AppCompatActivity(), View.OnClickListener { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_first) txtNext.setOnClickListener(this) } override fun onClick(v: View) { when (v.id) { R.id.txtNext -> { //Code statements } else -> { // else condition } } } }
over 4 years ago · Santiago Trujillo Denunciar

0

La forma más fácil que conozco de lograrlo es a través de Kotlin Android Extensions.

En tu aplicación/build.gradle

apply plugin: 'kotlin-android-extensions'

Si su botón se llama 'btnAdd', entonces en su fragmento o actividad importe lo siguiente:

import kotlinx.android.synthetic.main.fragment_transactions.btnAdd

 override fun onViewCreated(view: View?, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) btnAdd.setOnClickListener { Toast.makeText(context , "Done", 10).show() } }
over 4 years ago · Santiago Trujillo Denunciar

0

Si desea simular la antigua forma anónima en Kotlin, encontré que esto funcionó perfectamente.

 btnNewWay!!.setOnClickListener(object:View.OnClickListener { override fun onClick(v: View?) { //Your Code Here! }})
over 4 years ago · Santiago Trujillo Denunciar

0

Simplemente haga lo siguiente:

button.setOnClickListener{doSomething()}

over 4 years ago · Santiago Trujillo Denunciar

0

Agregue clickListener en un botón como este

 btUpdate.setOnClickListener(onclickListener)

agrega este código en tu actividad

 val onclickListener: View.OnClickListener = View.OnClickListener { view -> when (view.id) { R.id.btUpdate -> updateData() } }
over 4 years ago · Santiago Trujillo Denunciar

0

Hay varias formas diferentes de lograr esto, como lo demuestra la variedad de respuestas a esta pregunta.

Para asignar realmente el oyente a la vista, utiliza los mismos métodos que usaría en Java:

 button.setOnClickListener()

Sin embargo, Kotlin facilita la asignación de una lambda como oyente:

 button.onSetClickListener { // Listener code }

Alternativamente, si desea utilizar este oyente para múltiples vistas, considere una expresión lambda (una lambda asignada a una variable/valor como referencia):

 val buttonClickListener = View.OnClickListener { view -> // Listener code } button.setOnClickListener(buttonClickListener) another_button.setOnClickListener(buttonClickListener)
over 4 years ago · Santiago Trujillo Denunciar

0

val saveButton:Button = findViewById(R.id.button_save) saveButton.setOnClickListener{ // write code for click event } with view object saveButton.setOnClickListener{ view -> // write code for click event }
over 4 years ago · Santiago Trujillo Denunciar

0

Puedes usar setOnClickListener así en Kotlin

 button.setOnClickListener(View.OnClickListener { //code })
over 4 years ago · Santiago Trujillo Denunciar

0

Aquí está la solución. A tu código le gustará esto:

 button.setOnClickListener { //your code here }

No es necesario agregar nada. como abajo:

 val button = findViewById<Button>(R.id.Button) button.setOnClickListener { }
over 4 years ago · Santiago Trujillo Denunciar

0

 val button = findViewById<Button>(R.id.button) button.setOnClickListener { val intent = Intent(this@MainActivity,ThirdActivity::class.java) intent.putExtra("key", "Kotlin") startActivity(intent) }
over 4 years ago · Santiago Trujillo Denunciar

0

 button.setOnClickListener { //write your code here }
over 4 years ago · Santiago Trujillo Denunciar

0

var tv = findViewById(R.id.tv) como TextView

 tv.setOnClickListener { val i = Intent(this@MainActivity, SecondActivity::class.java) startActivity(i) finish() }
over 4 years ago · Santiago Trujillo Denunciar

0

Una forma sencilla sería registrar un detector de clics y crear un detector de clics con una expresión lambda.

 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // click listener registered myButton.setOnClickListener(clickListener) }

E implementar el clickListener :

 private val clickListener: View.OnClickListener = View.OnClickListener { _ -> // do something here }

Puede reemplazar _ con un nombre si necesita la vista para usarlo. Por ejemplo, debe verificar la identificación del oyente de clics.

 private val clickListener: View.OnClickListener = View.OnClickListener { view -> if(view.id == login.id) { // do something here } }
over 4 years ago · Santiago Trujillo Denunciar

0

Hay cinco formas de usar SetOnClickListener:

Primero:

 button.setOnClickListener { // Do some work here }

Segundo:

 button.setOnClickListener(object : View.OnClickListener { override fun onClick(view: View?) { // Do some work here } })

Tercera:

 button.setOnClickListener(View.OnClickListener { view -> // Do some work here })

Cuatro:

 class MainActivity : AppCompatActivity(), View.OnClickListener{ lateinit var button : Button override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) button = findViewById(R.id.button1) button.setOnClickListener(this) } override fun onClick(view: View?) { when(view?.id){ R.id.button1->{ // do some work here } } } }

Quinto:

 class MainActivity : AppCompatActivity(){ lateinit var button : Button override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) button = findViewById(R.id.button1) button.setOnClickListener(listener) } val listener= View.OnClickListener { view -> when (view.getId()) { R.id.button1 -> { // Do some work here } } } }

¡Salud!

over 4 years ago · Santiago Trujillo Denunciar

0

Agregue el archivo del módulo build.gradle

 android { ... buildFeatures { viewBinding true } }

Para actividad añadir

 private lateinit var binding: ResultProfileBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ResultProfileBinding.inflate(layoutInflater) val view = binding.root setContentView(view) }

Agregar al hacer clic

 binding.button.setOnClickListener { Log.d("TAG", "Example") }
over 4 years ago · Santiago Trujillo Denunciar

0

En caso de que alguien más quiera lograr esto mientras usa el enlace. Si la identificación de su vista es button_save, entonces este código se puede escribir, aprovechando la sintaxis de aplicación de kotlin

 binding.apply { button_save.setOnClickListener { //dosomething } }

Tome nota vinculante es el nombre de la instancia vinculante creada para un archivo xml. El código completo está debajo si está escribiendo el código en fragmentos. La actividad funciona de manera similar

 private lateinit var binding: FragmentProfileBinding override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { // Inflate the layout for this fragment binding = FragmentProfileBinding.inflate(inflater, container, false) return binding.root } // onActivityCreated is deprecated in fragment override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) binding.apply { button_save.setOnClickListener { //dosomething } } }
over 4 years ago · Santiago Trujillo Denunciar

0

Implementación del botón OnClickListener desde la función en Android usando kotlin.

Primera vista de botón Crear desde archivo .xml

 `<Button android:id="@+id/btn2" android:layout_width="match_parent" android:layout_height="match_parent" android:text="Button2" android:layout_weight="0.5"/>`

// y crea una instancia de botón en Actividad

 private var btn1:Button?=null

o

// Para la inicialización tardía puede seguir así,

 private lateinit var btn1:Button

// en onCreate,

 btn1=findViewById(R.id.btn1) as Button btn1?.setOnClickListener { btn1Click() }

// implementando el evento OnClick del botón de la función,

 private fun btn1Click() { Toast.makeText(this, "button1", Toast.LENGTH_LONG).show() }
over 4 years ago · Santiago Trujillo Denunciar

0

Lo mejor para lograr un oyente de clics en Kotlin (significa que sin findview by id puede hacer clic o instalar la vista de texto, el botón, el control giratorio, etc.)

Paso: -

  1. Ve a tu Build/gradle
  2. Agregue esta línea: - id 'kotlin-android-extensions'
  3. Luego sincroniza el proyecto.

Estos son los complementos de Gradle File { id 'com.android.application' id 'kotlin-android' id 'kotlin-android-extensions' }

android { compileSdkVersion 30 buildToolsVersion "30.0.3"

 defaultConfig { applicationId "com.safal.myapp" minSdkVersion 21 targetSdkVersion 30 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = '1.8' }

}

over 4 years ago · Santiago Trujillo Denunciar

0

Puede usar view.setOnClickListener{ // your task to execute }

La inferencia de tipo Kotlin y la expresión lambda automática manejarán el modelo estándar. Nota: Aquí la vista puede ser cualquier cosa como TextView o botón, etc.

over 4 years ago · Santiago Trujillo Denunciar

0

Hay varias formas de hacerlo, preferiría la forma kotlin de hacerlo y minimizar el código repetitivo.

Digamos que tiene un botón definido en su archivo de diseño como este,

 <Button android:id="@+id/clickMe" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Ok" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" />

y desea agregar onClickListener a este botón clickMe Necesitaría a continuación para hacer esto,

  1. Agregue la extensión kotlin a sus complementos existentes en el archivo build.gradle como se muestra a continuación y sincronice

     plugins { id 'kotlin-android-extensions' }
  2. Agregue el oyente así,

     clickMe.setOnClickListener { Toast.makeText(this@MainActivity, "You clicked me!", Toast.LENGTH_SHORT).show() }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda