[]
Android Like Button / id bulma sorunu / RecyclerView ve Mysql-php
Merhaba ben twitter klonu yapmaya çalışıyorum.
LOgin REgister Bitti.
twit atıp RecyclerView içerisinde görüntüleyebiliyorum.
Şİmdi card view içindeki twit lerin altına button yerleştirdim.
Bu yerleştirdiğim like butonunu dinamik olarak çalıştırmak istiyorum.
butona basıldığında sayılar artacak ve bu sayılar atılan tiwitin mysql tablosuna güncellenerek yazılacak.
Bunun için benim atılan twittin mysql tablosundaki id bulmam gerekiyor.
Son girilen veriyi bulmak istemiyorum.
BEn her twititn altında bulunan basıldığında sayıları artan like butonunun sayı bilgisini o tiwitin tablosuna koymam gerekiyor fakat id bulamıyorum.
Nasıl arayacağımı da bilmiyorum.
Biliyorum biraz karışık anlattım fakat konu karışık o yüzden.
YArdım ederseniz sevinirim.
Teşekkürler.
LOgin REgister Bitti.
twit atıp RecyclerView içerisinde görüntüleyebiliyorum.
Şİmdi card view içindeki twit lerin altına button yerleştirdim.
Bu yerleştirdiğim like butonunu dinamik olarak çalıştırmak istiyorum.
butona basıldığında sayılar artacak ve bu sayılar atılan tiwitin mysql tablosuna güncellenerek yazılacak.
Bunun için benim atılan twittin mysql tablosundaki id bulmam gerekiyor.
Son girilen veriyi bulmak istemiyorum.
BEn her twititn altında bulunan basıldığında sayıları artan like butonunun sayı bilgisini o tiwitin tablosuna koymam gerekiyor fakat id bulamıyorum.
Nasıl arayacağımı da bilmiyorum.
Biliyorum biraz karışık anlattım fakat konu karışık o yüzden.
YArdım ederseniz sevinirim.
Teşekkürler.
Aradigin şey position. Tıklama event'i position diye bir parametre alır. Recycler için bir item list olusturmussundur. Event metodu içinde örneğin list.get(position).getId dersen tıkladığın tweet için Id değerini verir.
Item list oluşturman gerektiğini daha önceki duyurunda söylemiştim.
Item list oluşturman gerektiğini daha önceki duyurunda söylemiştim.
- kaptan maydanoz (09.10.19 17:06:21)
Efendim ben dediğiniz gibi yaparak (holder.getAdapterPosition())
id elde ediyorum fakat bu id android tarafından benim twittime verilen id.
Yani (holder.getAdapterPosition()) id ile veritabanındaki id aynı olması gerekiyor fakat aynı değil.
Belki tüm veritabanını silersek aynı anda başladığı için aynı id verilebilmiş olur ama bu yöntemle mi çalışılmalı bilemedim.
Çünkü benim amacım twittin altıdaki like butonuna tıklandığında artan sayıları veritabanına gönderip sonrada orodan çekmek.
Göndermek yeride webservis tarafında güncelleme yapıyorum çünkü like sayıları artabilir.
id elde ediyorum fakat bu id android tarafından benim twittime verilen id.
Yani (holder.getAdapterPosition()) id ile veritabanındaki id aynı olması gerekiyor fakat aynı değil.
Belki tüm veritabanını silersek aynı anda başladığı için aynı id verilebilmiş olur ama bu yöntemle mi çalışılmalı bilemedim.
Çünkü benim amacım twittin altıdaki like butonuna tıklandığında artan sayıları veritabanına gönderip sonrada orodan çekmek.
Göndermek yeride webservis tarafında güncelleme yapıyorum çünkü like sayıları artabilir.
- aristotelesin berberi (09.10.19 17:28:55)
ben olsam şöle yapardım;
veritabanında tweetler tablosunda bir girdi düşünelim
id | kullanıcıadi | text | tarih | begenisayisi | begenenler |
2 | aristo | berberlik güzel | 2019-10-9 18:25:03 | 3 | "raydi""kaptan""aristo" |
gibi bir tablo kullanırdım, tweetler yüklenirken adapter içinde:
"sql sorgusu ile tweetler çekilirken listeye koyarken, yeni bir hashmap oluşturabiliriz sanki işte misal
liste başında; Map<String, String> tweed_id_listesi= new HashMap<String, String>();
adapter içinde; tweed_id_listesi.put("liste id" ,"veritabanı id" );
adapter içinde; tweed_id_listesi.put(holder.getAdapterPosition(), db.veritabani_id);
işte kısaca eşleştiriyoz,sonrası:
beğeni tuşuna basında fonksiyon şu: php/servere istek yollarım parametre ile.
tweet_id = tweed_id_listesi.get(holder.getAdapterPosition()) //veritabanındaki id gelecek
servere istek şöyle olur misal:
blabla,com/begen.php?tweetid=" + tweet_id + "&kullanici_adi=" + kul_adi;
istek yolladıktan sonra, cevap geliyor işte succes diye, sonra tweetleri yeniden yükleriz sayı güncellenir
begen.php içinde de tweet id'sinden tweeti bulup, tabloda sayıyı artırıp, "begenenler" sütununa ekleme yaparız işte "kul_adi" şeklinde.
tweetler yüklenirken daha önce beğendimi sorgusu için ise twetler yükleirken begenenler kısmında '"kul_adi"' böyle bir şey geçiyor mu,geçiyorsa daha önce beğenmiş, tuşu kırmızı yaparsın vs
çok mu uzun oldu :/
veritabanında tweetler tablosunda bir girdi düşünelim
id | kullanıcıadi | text | tarih | begenisayisi | begenenler |
2 | aristo | berberlik güzel | 2019-10-9 18:25:03 | 3 | "raydi""kaptan""aristo" |
gibi bir tablo kullanırdım, tweetler yüklenirken adapter içinde:
"sql sorgusu ile tweetler çekilirken listeye koyarken, yeni bir hashmap oluşturabiliriz sanki işte misal
liste başında; Map<String, String> tweed_id_listesi= new HashMap<String, String>();
adapter içinde; tweed_id_listesi.put("liste id" ,"veritabanı id" );
adapter içinde; tweed_id_listesi.put(holder.getAdapterPosition(), db.veritabani_id);
işte kısaca eşleştiriyoz,sonrası:
beğeni tuşuna basında fonksiyon şu: php/servere istek yollarım parametre ile.
tweet_id = tweed_id_listesi.get(holder.getAdapterPosition()) //veritabanındaki id gelecek
servere istek şöyle olur misal:
blabla,com/begen.php?tweetid=" + tweet_id + "&kullanici_adi=" + kul_adi;
istek yolladıktan sonra, cevap geliyor işte succes diye, sonra tweetleri yeniden yükleriz sayı güncellenir
begen.php içinde de tweet id'sinden tweeti bulup, tabloda sayıyı artırıp, "begenenler" sütununa ekleme yaparız işte "kul_adi" şeklinde.
tweetler yüklenirken daha önce beğendimi sorgusu için ise twetler yükleirken begenenler kısmında '"kul_adi"' böyle bir şey geçiyor mu,geçiyorsa daha önce beğenmiş, tuşu kırmızı yaparsın vs
çok mu uzun oldu :/
- masseter (09.10.19 18:00:30 ~ 18:03:36)
@aristo daha önce de belirttiğim gibi bir item sınıfı oluşturman gerekli. Cidden gerekli :) yoksa projenin sağlıklı bir şekilde yürüyeceğini düşünmüyorum.
Item sınıfı içinde id leri set edeceksin sonra oradan cekeceksin id'yi.
Item sınıfı içinde id leri set edeceksin sonra oradan cekeceksin id'yi.
- kaptan maydanoz (09.10.19 18:40:15)
@masseter , @kaptan maydanoz
Efendim teşekkür ediyorum.
Şimdi mola verdim yarın çalışmaya devam edeceğim.
Sabah dediklerinizi deneyeceğim.
Teşekkür ediyorum.
İyi akşamlar.
Efendim teşekkür ediyorum.
Şimdi mola verdim yarın çalışmaya devam edeceğim.
Sabah dediklerinizi deneyeceğim.
Teşekkür ediyorum.
İyi akşamlar.
- aristotelesin berberi (09.10.19 18:47:47)
@masseter , @kaptan maydanoz
Tekrar merhaba biraz ilerleme kaydettim, en azından şuan istediğim şeye nasıl ulaşacağımı biliyorum fakat uygulayamıyorum.
Efendim şimdi ben twitter clonu yapmak istiyorum.
Atılan twitten altına like butonu koymak ve dinamik olarak çalıştırmak istiyorum.
Fakat sorun like butonunun hangi twit id sahip olduğunu bilmiyordum.
Bu sorunu şöyle çözdüm.
Atılan tiwit veri tabanına kayıt oluyor sonra çekilerek android tarafında pars ediliyor.
Ben twit verisi çekerken id çekmiyordum.
Şimdi çekebiliyorum.
Fakat şimdide çektiğim id twitin altına yazamıyorum.
Atılan tiwit ile id ayrı card view ler halinde görünüyor.
Aynı card view içinde id ve twit olması için iki tane array list olması gerekiyor fakat onda da hata alıyorum.
public void tumKelimeler(){
String url = "goldgym.pro";
StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
kelimelerListe = new ArrayList<>();
try {
JSONObject jsonObj = new JSONObject(response);
JSONArray kelimeler = jsonObj.getJSONArray("employees");
// looping through All Contacts
for (int i = 0; i < kelimeler.length(); i++) {
JSONObject k = kelimeler.getJSONObject(i);
String turkce = k.getString("akis");
String id = k.getString("id");
Kelimeler kelime = new Kelimeler(turkce);
Kelimeler kelimes = new Kelimeler(id);
kelimelerListe.add(kelime); // Çekilen Twit
kelimelerListe.add(kelimes); // Çekilen Twit id si
}
adapter = new KelimelerAdapter(MainActivity.this,kelimelerListe);
rv.setAdapter(adapter);
Tekrar merhaba biraz ilerleme kaydettim, en azından şuan istediğim şeye nasıl ulaşacağımı biliyorum fakat uygulayamıyorum.
Efendim şimdi ben twitter clonu yapmak istiyorum.
Atılan twitten altına like butonu koymak ve dinamik olarak çalıştırmak istiyorum.
Fakat sorun like butonunun hangi twit id sahip olduğunu bilmiyordum.
Bu sorunu şöyle çözdüm.
Atılan tiwit veri tabanına kayıt oluyor sonra çekilerek android tarafında pars ediliyor.
Ben twit verisi çekerken id çekmiyordum.
Şimdi çekebiliyorum.
Fakat şimdide çektiğim id twitin altına yazamıyorum.
Atılan tiwit ile id ayrı card view ler halinde görünüyor.
Aynı card view içinde id ve twit olması için iki tane array list olması gerekiyor fakat onda da hata alıyorum.
public void tumKelimeler(){
String url = "goldgym.pro";
StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
kelimelerListe = new ArrayList<>();
try {
JSONObject jsonObj = new JSONObject(response);
JSONArray kelimeler = jsonObj.getJSONArray("employees");
// looping through All Contacts
for (int i = 0; i < kelimeler.length(); i++) {
JSONObject k = kelimeler.getJSONObject(i);
String turkce = k.getString("akis");
String id = k.getString("id");
Kelimeler kelime = new Kelimeler(turkce);
Kelimeler kelimes = new Kelimeler(id);
kelimelerListe.add(kelime); // Çekilen Twit
kelimelerListe.add(kelimes); // Çekilen Twit id si
}
adapter = new KelimelerAdapter(MainActivity.this,kelimelerListe);
rv.setAdapter(adapter);
- aristotelesin berberi (10.10.19 14:28:47)
Kelimeler kelime = new Kelimeler(turkce);
Kelimeler kelimes = new Kelimeler(id);
Bahsettiğim item sınıfı bu işte. Ama 1 tane olması gerekiyor sadece. O yüzden çekemiyorsun. Kodların bir yerde duruyor mu github filan? Ordan baksak daha iyi.
Kelimeler kelimes = new Kelimeler(id);
Bahsettiğim item sınıfı bu işte. Ama 1 tane olması gerekiyor sadece. O yüzden çekemiyorsun. Kodların bir yerde duruyor mu github filan? Ordan baksak daha iyi.
- kaptan maydanoz (10.10.19 16:08:02)
Merhaba @kaptan maydanoz ubuntu da github deskop çalışmıyor o yüzden dual bot iLE iki işletim sistemini kullanıyorum.Şimdi windowsa geçip githup push ettim. Oyuzden bukadar uzun sürdü.
Login register kısmı başka projede yaptım onu sonrada dahil edeceğim.
Aşağıdaki linke tıklayarak çalıştığım MainActivity ulaşabilirsin.
github.com
login register kısmı olan proje
github.com
Dediğin gibi iki tane item sınıfı olmuyor hata veriyor.
Login register kısmı başka projede yaptım onu sonrada dahil edeceğim.
Aşağıdaki linke tıklayarak çalıştığım MainActivity ulaşabilirsin.
github.com
login register kısmı olan proje
github.com
Dediğin gibi iki tane item sınıfı olmuyor hata veriyor.
- aristotelesin berberi (10.10.19 17:37:12)
1