Kotlin ile Button Event’ları

Merhaba Arkadaşlar,

Bu dersimizde kotlin ile button ‘a tıklanma olaylarını öğreneceğiz.

1 -> Burada basit olarak bir projeyi sıfırdan açabildiğinizi varsayıyorum. (İlk kez android kurulumu yapanlar için bakması gereken kaynak aşağıdadır. )

https://codelabs.developers.google.com/codelabs/kotlin-android-training-get-started/#0

https://codelabs.developers.google.com/codelabs/kotlin-android-training-app-anatomy/#10

Projeyi oluşturdunuz ve artık Mainactivity layout dosyasını açın.

Öncelikle aşağıdaki şekilde bir xml yapısı oluşturuyoruz.

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
                                                   xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
                                                   android:layout_height="match_parent">

    <Button
            android:text="Button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btn_tiklama"
            app:layout_constraintEnd_toEndOf="parent"
            android:layout_marginEnd="8dp"
            android:layout_marginRight="8dp"
            app:layout_constraintStart_toStartOf="parent"
            android:layout_marginLeft="8dp"
            android:layout_marginStart="8dp"
            android:onClick="onButtonClicked"
            app:layout_constraintHorizontal_bias="0.498"
            tools:layout_editor_absoluteY="283dp"
            tools:ignore="MissingConstraints"/>

    <Button
            android:text="Button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btn_tiklama1"
            app:layout_constraintEnd_toEndOf="parent"
            android:layout_marginEnd="8dp"
            android:layout_marginRight="8dp"
            app:layout_constraintStart_toStartOf="parent"
            android:layout_marginLeft="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="80dp"
            app:layout_constraintTop_toTopOf="parent"
            android:onClick="onButtonClicked"
            app:layout_constraintHorizontal_bias="0.498"/>
    <TextView
            android:text="TextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/tv_gosterim" android:layout_marginTop="8dp"
            app:layout_constraintTop_toBottomOf="@+id/btn_tiklama" app:layout_constraintEnd_toEndOf="parent"
            android:layout_marginEnd="8dp" android:layout_marginRight="8dp"
            app:layout_constraintStart_toStartOf="parent" android:layout_marginLeft="8dp"
            android:layout_marginStart="8dp"/>


    <Button
            android:text="Button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btn_tiklama2"
            app:layout_constraintEnd_toEndOf="parent"
            android:layout_marginEnd="8dp"
            android:layout_marginRight="8dp"
            app:layout_constraintStart_toStartOf="parent"
            android:layout_marginLeft="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="192dp"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintHorizontal_bias="0.498"/>
</androidx.constraintlayout.widget.ConstraintLayout>

Yukardaki xml ‘de 3 tane button ve 1 tane text view olan bir yapı göreceksiniz.

Elde edeceğiniz basit uygulama yukarıdaki şekildedir.

Şimdi sıra geldi button event ‘larına. 2 tane işlem ile button ‘lara tıklama özelliği verebiliriz.

1–> setOnclickListener özelliği ile çağırmak. Örnek;

 tv_gosterim = findViewById(R.id.tv_gosterim)
    btn_tiklama2.setOnClickListener {
        Toast.makeText(this,"Button 2 'ye basıldı",Toast.LENGTH_LONG).show()
        tv_gosterim.setText("Btn 2 'ye tıklandı") }
        Log.i(TAG,"Main Activity Log")

}

2 –> OnClickListener interface ‘ini implemente ederek.

class MainActivity : AppCompatActivity(), View.OnClickListener {
Yukarıdaki şekilde ilgili class 'ınız View.OnClickListener 'ı implemente etmeniz gerekiyor. Sonrasında sizlere yeni bir metod verecektir. orada ilgili tanımlamaları yapabilirsiniz.
override fun onClick(view: View?) {
    if (view != null) {
        when(view.id){
            //kodlar

        }
    }

ve Evet artık işlem tamamdır. Kotlin ‘de button tıklama işlemlerini yapabilirsiniz.

MainActivity ‘nin tüm kod hali. (ilgili class ‘ın ismini güncellemeyi unutmayın. )

package com.umiitkose.androidexampleswithkotlin.example.onclick

import android.os.Bundle
import android.util.Log
import android.view.View
import android.widget.TextView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.umiitkose.androidexampleswithkotlin.R
import kotlinx.android.synthetic.main.ui_onclick_example.*


class OnClickedActivity : AppCompatActivity(), View.OnClickListener {

    companion object{
        val TAG: String = "MainActivity"
    }

    private lateinit var tv_gosterim:TextView


    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.ui_onclick_example)

        tv_gosterim = findViewById(R.id.tv_gosterim)
        btn_tiklama2.setOnClickListener {
            Toast.makeText(this,"Button 2 'ye basıldı",Toast.LENGTH_LONG).show()
            tv_gosterim.setText("Btn 2 'ye tıklandı") }
            Log.i(TAG,"Main Activity Log")
        

    }

        fun onButtonClicked(view: View){
            when(view.id){
                R.id.btn_tiklama ->tv_gosterim.text = ("Buttona Tıklandı")
                R.id.btn_tiklama1 ->tv_gosterim.text = ("Button1 Tıklandı")

            }

        }

    override fun onClick(view: View?) {
        if (view != null) {
            when(view.id){
                //kodlar

            }
        }
    }

}

Projenin kaynak kodları https://github.com/umiitkose/KotlinAndroidExamples.git adresinden erişebilirsiniz.

İlgili uygulama onclick package ‘ı içerisindedir.

Yazar: umiitkose

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir