Android Dersleri

Android Dersleri 29 : Telefon Rehberi Uygulaması Yapıyoruz

Merhaba. Yine uzunca bir aradan sonra yazmaya devam ediyorum. Bu yazımda,  veritabanında değinmediğim Where ifadesine yer vereceğim. Bunun için telefon rehberi tarzında basit arayüzü olan bir uygulama hazırladım. Bunu where nasıl kullanılır onu göstermek için yaptım. Uygulama aslında pek de telefon rehberine benzemiyor.

İlk olarak projeyi oluşturdum. Bunun için size sadece ilk adım olan proje bilgilerinin girildiği ekranı paylaşıyorum. Bundan sonraki tüm adımları Next Next diyerek tamamlayın. Project Name kısmında türkçe karakter ve boşluk kullanmayın. Uygulamanız çalışmaz ya da apk’sını telefona kuramazsınız.

Şimdi uygulamanın arayüzünü tasarladım ve bunu Relative Layout kullanarak yaptım. Arayüzüm ise şu şekilde :

Arayüzde kullandığım item’lerin isimlendirmesini, önceki derslerden birinde anlattığım gibi strings.xml‘e yazarak yapıyorum. Bunun için values altındaki strings.xml dosyasına, sayfama eklediğim her item için bir satır ekliyorum. Görüntüsü aşağıdaki gibidir.

Buradaki name etiketleri benim id‘m olacak. Karşısındaki ise onun değeri. Şimdi layout’umda bunu nasıl kullandım onu göstereyim.

İşaretli alanda, butonumun ismini doğrudan vermedim (hardcore), strings.xml‘deki id değerinden çektim. Her zaman bu şekilde yapın. Yapmazsanız sarı ünlem çıkacaktır layout’daki item üzerinde.

AndroidManifest dosyasının içeriği ise şu şekilde olacak :

Şimdi Veritabanı sınıfımı oluşturdum. Burada veritabanımla ilgili tanımlamaları yaptım. Veritabani sınıfı ise şu şekilde olacak :

Burada ad,soyad ve tel alanlarım var. Veritabanı adım telefonrehberi, tablomun adı ise kisiler. Bunu ben MainActivity sınıfımda kullanacağım. Şimdi de hemen MainActivity sınıfıma geçiyorum. Asıl işler burada dönecek tabiki.

Burada açıklama satırları ile durumu anlatmaya çalıştım. Bu resimdeki en önemli olay, kaydet butonuna basınca değerlerimizi kaydet metoduna göndermesidir. Şimdi kaydet metodunun içeriğine bakalım.

Burada SQLiteDatabase sınıfından bir nesne ürettik ve bu nesnenin Writable olduğunu yani bir yazma işlemi yapacağımızı belirttik. Sonra content nesnesine, tablomuzdaki hangi alanlara ekleme yapacaksak onları yazdık. Sütun adı ve değeri şeklinde. Sonra bağlantımızı kapattık ve ilgili mesajları verdik.

Bu aşamaya kadar yapılanları test ettim ve ekran görüntülerini aldım.

Kaydet butonuna basınca kişimiz veritabanına eklenmiş oldu. Şimdi kontrol edelim. Bunun için File Explorer‘dan bakıyorum. Bunun nasıl yapıldığını önceki derslerde göstermiştim.

Burada veritabanımı görüyorum. Bunu masaüstüne çıkarıyorum ve SQLite Expert ile açıyorum. Açtığım zaman aşağıdaki gibi kaydın eklenmiş olduğunu görüyorum.

Şimdi isim girip bu isme ait olan bilgileri getireceğim. Bunun için MainActivity sınıfındaki ilgili butonumun click eventini oluşturuyorum.

Bu bilgileriCek() metodumun içinde de veritabanımda bu isme ait olan satırı getiriyorum ve alert içinde gösteriyorum. Bunun için ilk olarak bilgileriCek() metodumun içini yazacağım.

Gerekli yerlerde açıklama satırları koydum. Şimdi ise çekilen verileri ekranda Alert ile göstereceğim. Kodlarım ise şu şekilde :

Alert için verdiğimiz adapter nesnesi, içerisinde veritabanından gelen değerleri tutuyor. Burada veritabanında bir tane değerimiz olduğu için 1 kayıt geldi. Daha fazla ekleseydim alt alta yazacaktı. Tabi bunun için bir önceki resimdeki arrapadater2.add() metodunun içini düzenlemeniz gerekir.

Son Ekran Görüntüleri :

 

Burada Getirilen Kayıtlar sayfasında, kayda tıklanınca o kayıtla ilgili düzenleme ya da silme işlemi yapabilirsiniz. Bunu size bırakıyorum. Bir önceki resimde silme ve değiştirme için gerekli metodlar var ve içerisi boş. Bunu siz doldurmaya çalışın.

Kaynak kodu buradan indirebilirsiniz.

Mehmet Kirazlı

İstanbul Eyüp'te ikamet ediyorum. Giresun Alucra'lıyım. Bilgisayar Mühendisliği bölümünden 2013 yılında mezun oldum. "Yeni Başlayanlar için Java 8" kitabının yazarıyım. Şu anda özel bir firmada Mobil Yazılım Geliştirme Uzmanı olarak çalışıyorum.

Yorumları Göster

  • teşekkürler.gerçekten bu blogdan çok faydalanıyorum... ve devamını bekliyorum :)

  • Merhaba, ilk veri tabanı örneğini inceledim ve yaptım(bunu da inceleyip yapacağım) fakat bir sorum var.Oluşturulan kayitlar isimli veri tabanı dosyası nereye oluşturuluyor.Ben bu dosyaya nasıl ulaşabilirim.(elle birden fazla kayıt girip on kullanmak istiyorum)... Sizin anlattığınız yöntemden farklı bir yapılışı mı var.... Anlatımlar ve cevap için teşekkür ederim...

  • bu uygulamanın aynısını yaptım. fakat eclipste data klasörüm boş gözüküyor neden acaba. uygulamayı çalıştırınca kayıt ekleme felan yapabiliyorum.

    • hangi projenin data klasörüne bakıyorsunuz yanlış bakmış olmayasınız ? Doğru baktığınız halde gelmiyorsa emülatör açıkken ddms tab'ından baktığınıza emin misiniz ?

  • Merhaba. Çok güzel bir anlatım olmuş. Bunun üzerinden yapmaya çalıştığım projede telefon rehberinde eklenen kişilere id veriyorum.

    Bundan sonra rehberden kayıt getiriken isim yazarak aratmak yerine listeden "isimleri" (numara olmadan) getirip, sonra listeden seçilen kişnin idsini kullanarak veritabanından istediğim bilgilerini getirmek istiyorum.

    Listemi oluturup getirebiliyorum. Fakat bir türlü seçilenin id sini alamıyorum.

    Bunu muhtemelen (yani anlayabildiğim kadarıyla)
    String strName = (String) arrayAdapter2.getItem(which);

    Bu satırda bir yerlerde yapmalıyım. Yani bir türlü seçilenin id sini alamadım.

    internetten 1 haftadır araştırıyorum bir sonuç bulamadım. Bunu nasıl yapabileceğim konusunda yardımcı olmanız mümkün mü? Yada benzer bir uygulama yaptıysanız paylaşabilir misiniz? Yoksa ben bu projeden vaz mı geçeyim :).

    Dersler tek kelimeyle harika. Çok şey öğrendim buradan. Teşekkürler.

    • Merhaba,

      Veritabanındaki id'lerin sıralamasıyla listview'deki id'lerin sıralaması aynı olmalı. Veritabanındaki id 0'dan başlamalı (listview'da ilk kaydın id si 0 dır çünkü) Buna göre düzenleme yapıp tekrar deneyin.

  • merhaba. uygulamanın aynısını yaptım, kayıt yaparken sorun yok ama kisiara kısmında ara yaptıgımda uygulama hata verip kapanıyor. nerde hata apmış olabilirim

  • güncelleme işlemini yapabilmek için alertdialog içinde kullancagımız metotu göstermeniz mümkün mü? o kadar ugraşmama ragmen yapamadım

  • böyle bir site hazırladığınız için çok teşekkür ederim. Gerçekten çok faydası oldu.

Son Gönderiler

Android Firebase Event (not set) Hatası Çözümü

Merhaba. Firebase Events'e istatistik attığınızda not set şeklinde bir değer görüyorsanız olası çözümünü göstereceğim. (daha&helliip;) Daha Fazla Oku

% gün önce

Namaz Vakitleri Uygulaması Yayında

Merhaba. Android cihazlar için hazırladığım Namaz Vakitleri uygulaması ile 200'e yakın ülkede tüm namaz-ezan vakitlerini… Daha Fazla Oku

% gün önce

Kaza Namazı ve Oruç Takip Uygulaması

Selamlar. İnsanlar için faydalı olması amacıyla geliştirdiğim Kaza Namazı ve Oruç Takip Uygulamasını sizlere tanıtmak… Daha Fazla Oku

% gün önce

Android Volley Kullanımı ve JSON Parse İşlemleri

Volley, Android uygulamalarımızda kullandığımız AsyncTask'ın alternatifi olarak ortaya çıkarılan, Google I/O 2013 sunumunda duyurulan bir… Daha Fazla Oku

% gün önce

Android ButterKnife Kütüphanesi Kullanımı

Merhaba. Bu yazımda Android platformunda kullanıma sunulan, bazı kod bloklarını basitleştiren ve okunabilirliği arttıran ButterKnife… Daha Fazla Oku

% gün önce

Admob TikTok Reklamları Engelleme

Merhaba. Bu yazımda artık baş belası olmuş TikTok reklamlarını, Android uygulamalarımızdaki Admob reklamlarından nasıl kaldıracağımızı… Daha Fazla Oku

% gün önce