Özel AlertDialog Oluşturma
Bir önceki sayfa da basit bir alertdialog oluşturmayı görmüştük, şimdi ise yine basit bir örnek üzerinden Özel AlertDialog oluşturmaya bakalım.
Yorum yapma ve puanlama penceresini simule eden bir AlertDialog örneği.


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | <?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" tools:context=".MainActivity"> <Button android:id="@+id/oyGonderBtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginEnd="8dp" android:layout_marginBottom="252dp" android:onClick="gonderClick" android:text="Yorum Gonder" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.498" app:layout_constraintStart_toStartOf="parent" /> <TextView android:id="@+id/txtcikti" style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="8dp" android:layout_marginEnd="8dp" android:layout_marginBottom="8dp" android:textSize="18sp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="1.0" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/oyGonderBtn" /> </androidx.constraintlayout.widget.ConstraintLayout> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView style="@style/TextAppearance.AppCompat.Title" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@android:color/holo_blue_dark" android:gravity="center" android:padding="15dp" android:text="Yorum Penceresi" android:textColor="#FCE4EC" android:textSize="24sp" /> <RatingBar android:id="@+id/ratingBar" android:paddingTop="5dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center"/> <EditText android:id="@+id/yorumText" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Yorumunuz..." android:inputType="textPersonName" /> </LinearLayout> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | package com.necipakgz.alertdialog_custom; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.view.View; import android.widget.EditText; import android.widget.RatingBar; import android.widget.TextView; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { private TextView txtcikti; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); txtcikti = findViewById(R.id.txtcikti); } //MainActivity üzerinde bulunan Button'a tıklanınca olacak olanlar public void gonderClick(View view) { //Oluşturduğumuz alerdialog Layout'una ulaşıyoruz View alertLayout = getLayoutInflater().inflate(R.layout.alertdialog_ozel, null); final EditText editText = alertLayout.findViewById(R.id.yorumText); final RatingBar ratingBar = alertLayout.findViewById(R.id.ratingBar); new AlertDialog.Builder(this) //Yukarıda bir değişkene atadığımız özel layout'u kullanacağımızı söylüyoruz. .setView(alertLayout) //Olumlu seçenek seçildiğinde olacak olanları belirtiyoruz .setPositiveButton("Gönder", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //Gönder tuşuna basıldığı andaki değerleri alıp //MainActivity üzerinde bulunan textView'e aktarıyoruz. String rating = String.valueOf(ratingBar.getRating()); String yorum = editText.getText().toString(); txtcikti.setText("Yorum: " + yorum + "\nVerilen Puan: " + rating); //Yorumun gönderildiği hakkında ufak bir bilgi veriyoruz Toast.makeText(getApplicationContext(), "Yorumunuz için Teşekkürler", Toast.LENGTH_SHORT).show(); } }) //Olumsuz seçenek seçildiğinde sadece ufak bir bilgi veriyoruz. .setNegativeButton("Vagceç", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(getApplicationContext(), "Yorum Gönderilmedi!", Toast.LENGTH_SHORT).show(); } }) .show(); } } |
