Soru & Cevap

Android içinde Unique ID gibi bir değer kullanabilir miyim? ...

25.04.2014 - 12:04

Android ile mesajlaşma uygulaması tarzında bir uygulama yapmaya çalışıyorum fakat kullanıcı etkileşimini nasıl sağlayabileceğim konusunda hiç bir fikrim yok. Şimdiye kadar yaptıklarımı şöyle özetleyebilirim.

Uygulamaya girdiğinizde kayıt olmanızı istiyorum ve kayıt aşamasında telefona daha sonradan lazım olabilecek bir kaç bilgiyi kaydediyorum. Daha sonra db' de kayıtlı olan verileri çekip listview oluşturuyorum.

Yapmak istediğim de tam anlamıyla şu,

Ben Emre, Merveye cevap atmak istiyorum. Normalde php ile olsa Merve' nin cevap gönder buttonuna Merveye ait olan ID değerini filan atarım ve cevap göndermek istediğim zaman Emre ID' sinden - Merve ID' sine şeklinde db' ye kaydederim. Android' de buna benzer bir işlemi nasıl gerçekleştirebilirim? 

Listview içerisinde bir button' a veya hidden bir element' e ilgili Listview ID' sine denk gelen kullanıcı ID' sini yazmam gibi bir ihtimal söz konusu mu? veya bu işin içinden sizce nasıl çıkabilirim?

Yardımınız için çok teşekkür ederim.

27 Görüntülenme

2 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-16908-1396912439.jpg
emre_koc
27.04.2014 - 08:10

Yapacağın uygulamanın server kısmında karşılaşacağın zorluklar ile uğraşmak yerine android uygulamasına yoğunlaşmak istersen, isteklerinin hepsini karşılayacak bir framework var. Şu an ben de geliştirdiğim bir uygulamada kullanıyorum.

Kullanıcı takip etme, bildirim gönderme, mesajlaşma gibi bir çok destekleri mevcut. Türkçe istersen Turkcell Usergrid var fakat onun push notification desteği doğrudan usergrid içerisinde mevcut değil.

Push notification desteği de içinde olsun dersen Apigee var.  Linkler aşağıda mevcut

https://apigee.com/about/

https://gelecegiyazanlar.turkcell.com.tr/usergrid

picture-20467-1455707757.jpg
byyasin
27.04.2014 - 12:54

Şimdi olay şöyle gerçekleşiyor. Database den çekip ListView e veri dökerken Cursor kullanırsınız.

Eğer ListViewin dizaynını Custom olarak ayarlarsanız işiniz biraz zorlaşıyor. Ama böyle yapmak her zaman için daha iyidir.

ListViewActivity kullandığınızı varsayarak anlatıyorum. Normal Activity kullandıysanızda korkmayın çok bi değişiklik olmaz. Sadece ListViewi tanımlanız gerekiyor okadar.

Php de Bir kişiye ait bir işlem yapılacağında ?act=duzenle&id=35 gibi bir parametre gönderilir. Bu kişinin sırasının bi önemi yoktur idsi hep sabittir.

Fakat Androidde ListViewde genelde id ile iş yapılmaz kişilerin sıralamasıyla iş yapılır.

ListViewde bir kişiye dokunduğunuzda şu metod çalışır. Verileri çektiğiniz Global bir Cursorunuzun olduğunu varsayıyorum.

[code]
    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) { 
        super.onListItemClick(l, v, position, id);
         // Bazı durumlarda long id ile veritabanındaki  tanımlanan id sütunundaki veri direkt olarak gelir ama bu her zaman sağlanmaz o yüzden pek tavsiye de edilmez.

        cursorIsmi.moveToPosition(position);
       // Bu kod sizin cursorunuzu seçtiğiniz dokunduğunuz kişinin üzerine getirir.
       // Artık cursorden aldığınız veriler dokunduğunuz kişiye aittir.
       String kisininAdi = String.valueOf(cursorIsmi.getString(cursorIsmi.getColumnIndex("databaseKisiAdiSutunu")));
       String kisininSoyadi = String.valueOf(cursorIsmi.getString(cursorIsmi.getColumnIndex("databaseKisiSoyadiSutunu")));
       int kisininIDsi = Integer.valueOf(cursorIsmi.getInt(cursorIsmi.getColumnIndex("databaseIDSutunu")));
       /* bu şekilde artık o kişiye ait istediğiniz stunlara erişebilir içindeki verileri bir string yada int e aktarıp kullanabilirsiniz. (Bütün sütunlarda burda okurken Stringi kullanmanızı tavsiye ederim tür dönüşüm sorununuzu en aza indirir dbde integer ile olsa burda string olarak okuyabilirsiniz sıkıntı olmaz)*/
        // Burada başka bir activity açan veya bi işlem yapan kodunuzu yazarak bu stündakileri verileri kullanabilirsiniz.
        });
[/code]