Soru & Cevap

Android Studio da veritabanından koşullu olarak veri çekme ...

20.05.2020 - 09:28

Herkese merhaba.Öncelikle androidde yeniyim. Projeme SQLite kullanarak bir veritabanı ve bu veritabanına veri ekledim.Projenin amacı resmi çekilen metinin içerisinde veritabanımda kaydedilmiş olan bir ürünün ismi varsa veritabanından bu ürün hakkında verilmiş olan açıklamayı ve ürün adını EditTexte yazmasıdır. Bu sorguyu nasıl yazabilirim veya izlediğim yol  doğru mu ? Sizden ricam spesifik bir kodla cevap yazmanız. Çünkü dediğim gibi henüz çok tecrübeli değilim. Cevap yazan olursa, şimdiden çok teşekkürler... 

 

53 Görüntülenme

1 Cevap

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

Profile picture for user f.erenyucal
f.erenyucal
16.02.2023 - 04:11

Merhaba! Android uygulamanız için SQLite veritabanı kullanarak ürün adı ve açıklamalarını kaydettiniz ve sonrasında resimdeki metnin içindeki ürün adı eşleşen veritabanından alınacak. Aşağıdaki adımlar size yardımcı olabilir:

  1. Öncelikle, projenize SQLite veritabanınızın olduğu ve açıklama ve ürün adı bilgileri içeren bir tablo oluşturduğunuzdan emin olun

  2. Ardından, metnin içindeki her kelimeyi ayrı ayrı alarak veritabanındaki ürün adları ile karşılaştırabilirsiniz

  3. Eğer metindeki kelime veritabanındaki bir ürün adı ile eşleşirse, o ürünün açıklamasını veritabanından çekerek EditText'e yazabilirsiniz

Aşağıdaki kod örneği bu işlevselliği sağlayabilir:

 

// Veritabanı bağlantısını aç
SQLiteDatabase db = this.getWritableDatabase();

// Metindeki her kelimeyi ayır
String[] words = text.split(" ");

// Her kelimeyi veritabanındaki ürün adları ile karşılaştır
for (String word : words) {
    Cursor cursor = db.rawQuery("SELECT * FROM urunler WHERE ad = ?", new String[]{word});
    if (cursor.moveToFirst()) {
        // Eşleşen ürünün açıklamasını EditText'e yaz
        String aciklama = cursor.getString(cursor.getColumnIndex("aciklama"));
        editText.setText(word + ": " + aciklama);
        break;
    }
    cursor.close();
}

// Veritabanı bağlantısını kapat
db.close();

 

Teşekkür ederim