Soru & Cevap

SQLite Veritabanı Ufak Bir Sorun

23.07.2014 - 05:29

Yapmak istediğim şey sözlük tarzı veritabanını anlama adına basit birşey. Kolonları oluşturuyorum "Türkçe-İngilizce kolon" Kullanıcıdan kelime kaydetme bölümünde sıkıntı yok kaydetme işlemi başarılı "Kitap-Book" şeklinde sorunsuz kaydoluyor fakat activity içinde bir fragment tanımladım bu fragment içinde Türkçesi yazılan kelimenin ingilizce karşılığını vermesini istiyorum. Bunun için aranan kelimenin türkçe karşılığının satır ID 'sini bulduruyorum. Satır id si üzerinden ingilizce karşılığı olan kolondaki kelimeyi alıp ara butonunun altındaki textView'a yazdırmak istiyorum. Fakat textView 'da "Book" yazması gerekirken şu şekilde görünüyor.

Görsel kaldırıldı. 

 

Kelimeyi bulmada sıkıntı yok getCount() metoduyla kontrol ediyorum 1 yazıyor yani kelimeyi sıkıntısız buluyor fakat benim istediğim kelimenin kendisi bunu vermiyor kelimenin sağında solunda dolanıyorum ama kelimenin kendini yakalayamıyorum. araButton listener içinde yazdığım gibi kelimeyi bulmaya çalışıyorum. kelimeAraSonuc metoduna Türkçesini yazdığımız kelimeyi yolluyorum o metod içinde Kelimenin satır id sini buluyorum . query(Tabloadı,ingilizceKelimelerinOlduguKolon,Satırid'si,null,null,null) şeklinde sorgulatıyorum dediğim gibi ingilizce kelimeyi sorunsuz buluyor fakat yazmıyor.

Görsel kaldırıldı.

14 Görüntülenme

2 Cevap

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

Profile picture for user BayGold
BayGold
24.07.2014 - 03:13

Sorunu çözdüm öncelikle Ahmet Demirkoparan'a çok teşekkür her soruma yanıt veriyor.

İlk etapta kelimeAra isminde bir metod oluşturdum. Bu metod String tipinde bir parametre kabul edecek şekilde oluşturuldu. Bu metod içinde query where clause şeklinde kelimeyi tabloda arattım ve bir cursor nesnesine set ettim ve o nesneyi metoddan döndürdüm.

Sonrasında aciklamaAra isminde başka bir metod oluştudum bu metod String tipinde bir parametre alıyordu " aciklamaAra(String ad)". araEdittexte yazılan kelimeyi bu metoda gönderdim.
metodun içinde bir cursor nesnesi oluşturdum ve Cursor=kelimeAra(ad) şeklinde metoda gelen string parametresini kelimeAra metoduna gönderip o kelimenin yerini  buldurup bu metoddaki Cursor nesnesine set ettim.

Son olarak cursor nesnesinin göstermesini istediğim ingilizce karşılıkların olduğu kolonun index değerini gösterdim. " int aciklamaIndex=cursor.getColmnnIndex("aciklama"); " ve cursor nesnesine verdiğim kolondaki değeri bana string tipinde metoddan döndürmesini istedim" return cursor.getString(aciklamaIndex); " Son olarak textView ' a metoddan gelen stringi yazdırdım .

Görsel kaldırıldı.

 

picture-1372-1408467635.jpg
ahmtbrk
23.07.2014 - 05:55
kelimeAraSonuc methodunun return degerine bakmak lazin. cursor.getString(cursor.getColumnIndex("columnName")); Colon adini duzenle bu sekilde cursordan data okunur Sen direk cursor nesnesini toString ile yazdirmissin
Doğan Can
23.07.2014 - 06:02
Hocam "columnName" Stringine ne yazmalıyım ?
Ahmet Burak Demirkoparan
23.07.2014 - 06:18
Türkçe kelimenin tutulduğu sütun adını yazman lazım tablodaki
Doğan Can
23.07.2014 - 08:05
kelimeAraSonuc.getString(kelimeAraSonuc.getColumnIndex("aciklama")); olarak veridim. Ara Butona tıkladığımda abstract class hatası alıyorum uygulama duruyor ben yarına kadar uğraşayım olmadı tekrar sizi rahatsız ederim hocam ilginiz için teşekkürler.
Ahmet Burak Demirkoparan
23.07.2014 - 08:18
Methodu paylasir misin?
Doğan Can
23.07.2014 - 10:19
Hocam şuan işyerindeyim yarın yazsam size bildirim gelir mi ?