Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

217
Views
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 answers
Answer question

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 Report

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 Report

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 Report

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 Report

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 Report

0

Usas así onclickListener en kotlin

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

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 Report

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 Report

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 Report

0

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

0

Simplemente puede obtener OnClickListener en kotlin

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

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 Report

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 Report

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 Report

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 Report

0

Simplemente haga lo siguiente:

button.setOnClickListener{doSomething()}

over 4 years ago · Santiago Trujillo Report

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 Report

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 Report

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 Report

0

Puedes usar setOnClickListener así en Kotlin

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

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 Report

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 Report

0

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

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 Report

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 Report

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 Report

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 Report

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 Report

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 Report

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!