Как за этот вопрос может проголосовать 43 человека?
Хьюго Аллексис Кардона
5
Вероятно, это популярно, потому что Android Studio конвертирует Java в, button.setOnClickListener(object : View.OnClickListener { override fun onClick(v: View) { /*do work*/} })а затем предоставляет рекомендации по их сгенерированному коду, который мы должны преобразовать в лямбда.
Джо Лапп
6
Котлин чертовски не интуитивен.
Понятия
2
Почему все отправляют один и тот же ответ с небольшой разницей? Ответ прост view.setOnClickListener { ... }. Кажется, все так хотят заработать репутацию.
все присмотритесь, «объект» не в фигурных скобках, очевидно. я зря потратил часть своего времени
М. Усман Хан
26
Есть пять способов использовать SetOnClickListener:
Первый:
button.setOnClickListener {// Do some work here}
Второй:
button.setOnClickListener(object:View.OnClickListener{overridefun onClick(view:View?){// Do some work here}})
Третий:
button.setOnClickListener(View.OnClickListener{ view ->// Do some work here})
Четвертый:
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}}}}
Пятое:
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}}}}
В моем случае это вызывает исключение nullPointerException. Можете ли вы мне помочь?
МашукХан
проверьте свои идентификаторы просмотра, убедитесь, что они существуют в xml файле.
Luvnish Monga
Они существуют в xml
MashukKhan
Поделитесь своим источником, включающим XML.
Luvnish Monga
6
Сначала вам нужно получить ссылку на представление (например, Button, TextView и т. Д.) И установить OnClickListener для ссылки с помощью метода 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()}
Обратитесь к примеру Kotlin SetOnClickListener для полного примера Kotlin Android, в котором кнопка присутствует в действии, а OnclickListener применяется к кнопке. При нажатии на кнопку выполняется код внутри блока SetOnClickListener.
Обновить
Теперь вы можете ссылаться на кнопку напрямую с ее идентификатором, включив следующий оператор импорта в файл класса. Документация .
Используйте этот код, чтобы добавить onClickListenerв Котлин
val button :Button= getView()?.findViewById<Button>(R.id.testButton)asButton
button.setOnClickListener {view ->Toast.makeText(context,"Write your message here",Toast.LENGTH_LONG).show()}}
пожалуйста, используйте это очень просто (установите идентификатор, щелкните прослушиватель и перейдите с одного класса на другой)
ЧАНДАН КУМАР
Добро пожаловать в Stack Overflow! Пожалуйста, не бросайте сюда свой исходный код. Будьте любезны и постарайтесь дать хорошее описание своему ответу, чтобы он понравился другим и поддержал его. См .: Как мне написать хороший ответ?
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()}}}
Есть несколько различных способов добиться этого, о чем свидетельствует множество ответов на этот вопрос.
Чтобы фактически назначить слушателя представлению, вы используете те же методы, что и в Java:
button.setOnClickListener()
Однако Kotlin позволяет легко назначить лямбду в качестве слушателя:
button.onSetClickListener {// Listener code}
В качестве альтернативы, если вы хотите использовать этот прослушиватель для нескольких представлений, рассмотрите лямбда-выражение (лямбда, присвоенное переменной / значению для справки):
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*/} })
а затем предоставляет рекомендации по их сгенерированному коду, который мы должны преобразовать в лямбда.view.setOnClickListener { ... }
. Кажется, все так хотят заработать репутацию.Ответы:
Предположим, у вас есть textView, чтобы щелкнуть
источник
Используйте код ниже
clickListener код.
источник
Вот пример того, как использовать onClickListener в Kotlin
источник
Есть пять способов использовать SetOnClickListener:
Первый:
Второй:
Третий:
Четвертый:
Пятое:
Ура!
источник
Способ 1:
Способ 2:
источник
Для использования нескольких идентификаторов:
Создать анонимный класс:
источник
Сначала вам нужно получить ссылку на представление (например, Button, TextView и т. Д.) И установить OnClickListener для ссылки с помощью метода setOnClickListener ()
Обратитесь к примеру Kotlin SetOnClickListener для полного примера Kotlin Android, в котором кнопка присутствует в действии, а OnclickListener применяется к кнопке. При нажатии на кнопку выполняется код внутри блока SetOnClickListener.
Обновить
Теперь вы можете ссылаться на кнопку напрямую с ее идентификатором, включив следующий оператор импорта в файл класса. Документация .
а затем для кнопки
Обратитесь к руководству по Android Studio .
источник
Используйте этот код, чтобы добавить
onClickListener
в Котлинисточник
Просто вы можете получить OnClickListener в котлине
источник
Я вижу здесь много предложений, но в этой подборке не хватает следующего.
а в текущем классе у нас есть такой метод:
источник
var tv = findViewById(R.id.tv)
как TextViewисточник
источник
источник
Простым способом было бы зарегистрировать прослушиватель щелчков и создать прослушиватель щелчков с лямбда-выражением.
И реализовать
clickListener
:Вы можете заменить
_
его именем, если вам нужно представление для его использования. Например, вам нужно проверить идентификатор прослушивателя кликов.источник
Есть несколько различных способов добиться этого, о чем свидетельствует множество ответов на этот вопрос.
Чтобы фактически назначить слушателя представлению, вы используете те же методы, что и в Java:
Однако Kotlin позволяет легко назначить лямбду в качестве слушателя:
В качестве альтернативы, если вы хотите использовать этот прослушиватель для нескольких представлений, рассмотрите лямбда-выражение (лямбда, присвоенное переменной / значению для справки):
источник
Просто сделайте, как показано ниже:
button.setOnClickListener{doSomething()}
источник
источник
Вы так используете onclickListener в kotlin
источник
источник
Вот решение. Вашему коду понравится это:
Не нужно ничего добавлять. как показано ниже:
источник
Сначала найдите кнопку, чтобы предотвратить приведение,
View
вы можете использовать<>
следующее:Когда у вас есть экземпляр
Button
, вы можете присоединить прослушиватель кликов следующим образом:источник
источник
Самый простой способ добиться этого - использовать Kotlin Android Extensions.
В вашем приложении / build.gradle
apply plugin: 'kotlin-android-extensions'
Если ваша кнопка называется 'btnAdd', то в вашем фрагменте или действии импортируйте следующее:
import kotlinx.android.synthetic.main.fragment_transactions.btnAdd
источник
Если вы хотите смоделировать старый анонимный способ в Котлине, я обнаружил, что это отлично работает.
источник
Добавьте clickListener на такую кнопку
добавьте этот код в свою деятельность
источник
Вы можете использовать setOnClickListener, как это, в Kotlin
источник