Android Studio'da Düğmeler: Hızlı Pratik Kılavuz

Kerem Aydın·7 Temmuz 2026·⏱2 dk

Button eklemek ve işleyiciyi yapılandırmak için: Benzersiz bir id ile layout'a Button yerleştirin, kısıtlamaları (ConstraintLayout için) ayarlayın, ardından Activity'de ViewBinding veya findViewById aracılığıyla referans alın ve setOnClickListener çağırın — aşağıdaki örnek hatasız çalışır.

Layout'a Button Ekleme

  1. res/layout/activity_main.xml dosyasını açın.
  2. Button'u ConstraintLayout (önerilir) veya RelativeLayout içine yerleştirin.

ConstraintLayout için örnek:

<Button
    android:id="@+id/myButton"
    android:layout_width="200dp"
    android:layout_height="60dp"
    android:text="Tıkla!"
    android:textSize="18sp"
    android:textColor="#FFFFFF"
    android:backgroundTint="#2196F3"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintBottom_toBottomOf="parent" />

ConstraintLayout'ta her zaman kısıtlamaları ayarlayın — aksi takdirde öğe düzenleyicide "süzülür".

RelativeLayout kullanıyorsanız, android:layout_centerInParent="true" gibi öznitelikleri uygulayın.

Düğmenin Görünümünü Ayarlama

  • Renkler: android:backgroundTint ve android:textColor.
  • Boyut: android:textSize="18sp", dp üzerinden sabit boyut.
  • Stil: Material stillerini uygulayın, örneğin style="@style/Widget.Material3.Button" ve themes.xml içinde Theme.Material3.DayNight üst temasını kullanın.

API seviyesi daha düşük cihazlarda ripple efekti için android:foreground="?attr/selectableItemBackground" kullanın veya yerel ripple için MaterialButton (Material Components'tan) kullanın.

Activity'de Tıklama İşleyicisi (Kotlin)

Önerilen yöntem — ViewBinding. build.gradle (Module: app) içinde android bloğunda:

buildFeatures {
    viewBinding true
}

MainActivity.kt:

class MainActivity : AppCompatActivity() {
    private lateinit var binding: ActivityMainBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)

        binding.myButton.setOnClickListener {
            Toast.makeText(this, "Düğmeye tıklandı!", Toast.LENGTH_SHORT).show()
            // veya startActivity(...), API çağrısı, animasyon vb.
        }
    }
}

ViewBinding olmadan alternatif:

val myButton = findViewById<Button>(R.id.myButton)
myButton.setOnClickListener { /* ... */ }

viewBinding'i etkinleştirdikten sonra Rebuild Project yapın — aksi takdirde ActivityMainBinding sınıfı oluşturulmaz.

Sık Karşılaşılan Hatalar

  • Düğme tıklanmıyor: View'in örtülüp örtülmediğini ve android:clickable="true" olup olmadığını kontrol edin.
  • ID Activity'de bulunamıyor: Projeyi derleyin (Build > Rebuild Project).
  • MaterialButton'da arka plan değişmiyor: background yerine backgroundTint kullanın.
  • findViewById'de NullPointerException: setContentView'in çağrıdan önce ayarlandığından emin olun.

SSS

  • Her zaman ViewBinding kullanmak gerekir mi? Tip güvenliği ve basitlik açısından, özellikle yeni projelerde önerilir.
  • Düğmeyi yuvarlak nasıl yaparım? cornerRadius ile drawable içinde bir shape oluşturun ve android:background üzerinden uygulayın veya app:cornerRadius ile MaterialButton kullanın.
  • İşleyiciyi doğrudan XML'de atamak mümkün mü? Evet — Activity'de android:onClick="onMyButtonClick" aracılığıyla public bir fun onMyButtonClick(view: View) metodu olmalıdır, ancak bu yöntem daha az açıklayıcıdır ve dikkat gerektirir.

Gerekirse MaterialButton, özel drawable düğmesi veya Jetpack Compose için örnekler ekleyebilirim.