Android

Android Haftanın Gün Adına Göre Özel Mesaj Gösterme

Bu makalede, Android uygulaması geliştirirken DatePicker bileşeni kullanarak, seçilen tarihe göre her gün için farklı mesajlar nasıl gösterilir, adım adım açıklanacaktır. Bu örnekte, kullanıcı bir tarih seçtiğinde, seçilen tarihin hangi güne denk geldiğine göre bir günaydın mesajı görüntülenmektedir.

Dilerseniz örneği DatePicker kullanmadan günün tarihine göre otomatik olarak gün adını alan ve mesaj veren bir uygulamaya dönüştürebilirsiniz. Bunun için bugünün tarihinden gün ismini çekmeyi gösteren makaleyi inceleyebilirsiniz.


1. Proje Yapısı ve Bileşenler

activity_main.xml

Uygulamanın görünümünü tanımlayan XML dosyasının içeriği aşağıdaki gibi olacaktır. Burada, bir DatePicker ve TextView bileşenleri yer almaktadır.

  • DatePicker: Kullanıcının tarih seçmesini sağlar.
  • TextView: Seçilen tarihe göre mesajı göstermek için kullanılır.

MainActivity.java

Ana aktivitede, DatePicker‘ın seçilen tarihi alarak, buna uygun bir mesajı TextView‘de gösterecek olan Java kodu aşağıda açıklanmıştır.

Kod Açıklaması

DatePicker ile Tarih Seçimi

  • DatePicker bileşeni kullanıcının tarih seçmesine olanak tanır. Tarih değiştiğinde, setOnDateChangedListener() metoduyla tetiklenir.
  • Kullanıcı bir tarih seçtiğinde, bu tarih LocalDate.of(year, monthOfYear + 1, dayOfMonth) ile bir LocalDate nesnesine dönüştürülür.

Gün Bilgisi ve Mesaj

  • secilenTarih.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.getDefault()) kullanılarak seçilen tarihin hangi güne denk geldiği elde edilir.
  • if-else yapısı ile, seçilen günün ismine göre her bir gün için özel bir mesaj belirlenir.
    • Örneğin, “Pazartesi” için “Günaydın! Pazartesi enerjisiyle haftaya başlayalım! ☀️” mesajı atanır.
  • Eğer seçilen gün bilinemiyorsa, default olarak “Gün bilgisi alınamadı.” mesajı görüntülenir.

Mesajı TextView’e Yazdırma

  • textViewMesaj.setText(gunMesaji) ile, oluşturulan mesaj TextView bileşeninde gösterilir.

Sonuç

Bu örnekte, Android uygulamanızda DatePicker kullanarak kullanıcıların bir tarih seçmesini sağlayıp, seçilen tarihin hangi güne denk geldiğine göre anlamlı ve kişisel bir günaydın mesajı göstermeyi başardık. Bu tür uygulamalar kullanıcı deneyimini artırmak ve uygulamanın etkileşimini güçlendirmek için oldukça faydalıdır.

Bu kodda kullanılan if-else yapısı, sadece birkaç gün için mesajları belirlemek adına yeterlidir, ancak çok daha fazla seçenek olduğu durumlarda switch-case gibi yapılar da kullanılabilir.

Önemli Not:

Kodları Android Studio Emulatorde denediğinizde; getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.getDefault()) metodu, cihazın dil ayarına bağlı olarak haftanın gününü döndürüyor. Eğer emülatörünüzdeki dil İngilizce ise, günler İngilizce olarak dönecektir (örneğin, “Monday”, “Tuesday” vb.), bu da Türkçe gün mesajlarıyla uyuşmaz ve “Gün bilgisi alınamadı” mesajını gösterir.

Bu durumu çözmek için, dilin Türkçe olduğundan emin olabilirsiniz. Locale.getDefault() yerine Locale("tr", "TR") kullanarak Türkçe gün adlarını alabilirsiniz. Aşağıda kodunuzu bu şekilde düzeltebilirsiniz.

  • new Locale("tr", "TR") ifadesi, dil olarak Türkçe’yi ve ülke olarak Türkiye’yi belirtir. Bu sayede gün isimlerini Türkçe olarak alırsınız (örneğin, “Pazartesi”, “Salı” vb.).
  • Bu değişiklikle, emülatörde dil ayarı ne olursa olsun, günler her zaman Türkçe olarak gösterilecektir ve doğru mesajlar görüntülenecektir.

Bu şekilde, “Gün bilgisi alınamadı” hatasından kurtulabilir ve doğru Türkçe gün mesajlarını alabilirsiniz.

Yorum yap