Provavelmente é popular porque o Android Studio converte o Java para button.setOnClickListener(object : View.OnClickListener { override fun onClick(v: View) { /*do work*/} })e, em seguida, fornece um aviso sobre o código gerado de que devemos convertê-lo em lambda.
Joe Lapp
6
Kotlin não é intuitivo. Não
faço
2
Por que todos estão postando a mesma resposta com uma pequena diferença? A resposta é simples view.setOnClickListener { ... }. Parece que todos estão ansiosos para ganhar reputação.
Existem cinco maneiras de usar SetOnClickListener:
Primeiro:
button.setOnClickListener {// Do some work here}
Segundo:
button.setOnClickListener(object:View.OnClickListener{overridefun onClick(view:View?){// Do some work here}})
Terceiro:
button.setOnClickListener(View.OnClickListener{ view ->// Do some work here})
Adiante:
classMainActivity:AppCompatActivity(),View.OnClickListener{
lateinit var button :Buttonoverridefun onCreate(savedInstanceState:Bundle?){super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button = findViewById(R.id.button1)
button.setOnClickListener(this)}overridefun onClick(view:View?){when(view?.id){
R.id.button1->{// do some work here}}}}
Quinto:
classMainActivity:AppCompatActivity(){
lateinit var button :Buttonoverridefun 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}}}}
Ele está jogando nullPointerException no meu caso. Você pode me ajudar
MashukKhan
verifique seus ids de visualização, certifique-se de que eles existam no arquivo xml.
Luvnish Monga
Eles existem em xml
MashukKhan
Compartilhe sua fonte inclui XML.
Luvnish Monga
6
Primeiro você tem que obter a referência para a Visualização (digamos, Button, TextView, etc.) e definir um OnClickListener para a referência usando o método setOnClickListener ()
// get reference to buttonval btn_click_me = findViewById(R.id.btn_click_me)asButton// set on-click listener
btn_click_me.setOnClickListener {Toast.makeText(this@MainActivity,"You clicked me.",Toast.LENGTH_SHORT).show()}
Consulte o Exemplo SetOnClickListener de Kotlin para obter o Exemplo Android completo do Kotlin em que um botão está presente em uma atividade e OnclickListener é aplicado ao botão. Ao clicar no botão, o código dentro do bloco SetOnClickListener é executado.
Atualizar
Agora você pode fazer referência ao botão diretamente com seu id, incluindo a seguinte instrução de importação no arquivo de classe. Documentação .
Use este código para adicionar onClickListenerem Kotlin
val button :Button= getView()?.findViewById<Button>(R.id.testButton)asButton
button.setOnClickListener {view ->Toast.makeText(context,"Write your message here",Toast.LENGTH_LONG).show()}}
por favor use este muito fácil (definir id, clicar em ouvinte e navegar de uma classe para outra)
CHANDAN KUMAR
Bem-vindo ao Stack Overflow! Por favor, não jogue apenas seu código-fonte aqui. Seja simpático e tente dar uma boa descrição à sua resposta, para que os outros gostem e votem positivamente. Veja: Como escrevo uma boa resposta?
sɐunıɔ ןɐ qɐp
4
val button = findViewById<Button>(R.id.button)
button.setOnClickListener {val intent =Intent(this@MainActivity,ThirdActivity::class.java)
intent.putExtra("key","Kotlin")
startActivity(intent)}
**i have use kotlin-extension so i can access directly by button id:**
btnSignIN.setOnClickListener {if(AppUtils.isNetworkAvailable(activity asBaseActivity)){if(checkValidation()){
hitApiLogin()}}}
Existem várias maneiras de fazer isso, conforme demonstrado pela variedade de respostas a essa pergunta.
Para realmente atribuir o ouvinte à visualização, você usa os mesmos métodos que usaria em Java:
button.setOnClickListener()
No entanto, o Kotlin facilita a atribuição de um lambda como ouvinte:
button.onSetClickListener {// Listener code}
Como alternativa, se você quiser usar este ouvinte para várias visualizações, considere uma expressão lambda (um lambda atribuído a uma variável / valor para referência):
val buttonClickListener =View.OnClickListener{ view ->// Listener code}
button.setOnClickListener(buttonClickListener)
another_button.setOnClickListener(buttonClickListener)
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}
button.setOnClickListener(object : View.OnClickListener { override fun onClick(v: View) { /*do work*/} })
e, em seguida, fornece um aviso sobre o código gerado de que devemos convertê-lo em lambda.view.setOnClickListener { ... }
. Parece que todos estão ansiosos para ganhar reputação.Respostas:
Suponha que você tenha textView para clicar
fonte
Use o código abaixo
código clickListener .
fonte
Aqui está um exemplo de como usar o onClickListener em Kotlin
fonte
Método 1:
Método 2:
fonte
Existem cinco maneiras de usar SetOnClickListener:
Primeiro:
Segundo:
Terceiro:
Adiante:
Quinto:
Felicidades!
fonte
Para usar vários IDs:
Crie uma classe anônima:
fonte
Primeiro você tem que obter a referência para a Visualização (digamos, Button, TextView, etc.) e definir um OnClickListener para a referência usando o método setOnClickListener ()
Consulte o Exemplo SetOnClickListener de Kotlin para obter o Exemplo Android completo do Kotlin em que um botão está presente em uma atividade e OnclickListener é aplicado ao botão. Ao clicar no botão, o código dentro do bloco SetOnClickListener é executado.
Atualizar
Agora você pode fazer referência ao botão diretamente com seu id, incluindo a seguinte instrução de importação no arquivo de classe. Documentação .
e então para o botão
Consulte o tutorial do Android Studio .
fonte
Use este código para adicionar
onClickListener
em Kotlinfonte
Simplesmente você pode obter OnClickListener em kotlin
fonte
Vejo muitas sugestões aqui, mas esta coleção não contém o seguinte.
e na classe atual temos um método como este:
fonte
var tv = findViewById(R.id.tv)
como TextViewfonte
fonte
fonte
Uma maneira simples seria registrar um ouvinte de clique e criar um ouvinte de clique com uma expressão lambda.
E implementar o
clickListener
:Você pode substituir
_
por um nome se precisar da visualização para usá-lo. Por exemplo, você precisa verificar a id do ouvinte de clique.fonte
Existem várias maneiras de fazer isso, conforme demonstrado pela variedade de respostas a essa pergunta.
Para realmente atribuir o ouvinte à visualização, você usa os mesmos métodos que usaria em Java:
No entanto, o Kotlin facilita a atribuição de um lambda como ouvinte:
Como alternativa, se você quiser usar este ouvinte para várias visualizações, considere uma expressão lambda (um lambda atribuído a uma variável / valor para referência):
fonte
Basta fazer o seguinte:
button.setOnClickListener{doSomething()}
fonte
fonte
Você usa assim onclickListener em kotlin
fonte
fonte
Aqui está a solução. Seu código será assim:
Não há necessidade de adicionar nada. como abaixo:
fonte
Primeiro encontre o botão, para evitar que a transmissão do,
View
você pode usar o da<>
seguinte maneira:Depois de ter uma instância de
Button
, agora você pode anexar o ouvinte de clique da seguinte maneira:fonte
fonte
A maneira mais fácil que conheço de conseguir isso é por meio das extensões Kotlin Android.
Em seu app / build.gradle
apply plugin: 'kotlin-android-extensions'
Se o seu botão se chamar 'btnAdd', no seu fragmento ou atividade importe o seguinte:
import kotlinx.android.synthetic.main.fragment_transactions.btnAdd
fonte
Se você quiser simular a velha forma anônima em Kotlin, achei que funcionou perfeitamente.
fonte
Adicionar clickListener em um botão como este
adicione este código em sua atividade
fonte
Você pode usar setOnClickListener assim no Kotlin
fonte