Soru & Cevap

Android döngü içinde gelen aynı değerler ...

07.07.2015 - 10:20

Merhaba,

Sorumun tam olarak androidle alakası yok aslında fakat 1 gündür çok saçma bir hata ile uğraşıyorum. Veritabanından çektiğim verileri bir diziye veya List'e atmaya çalışıyorum fakat döngünün son elemanı dizinin tüm indislerine yerleşiyor.

 public  Word[] getChoicePack(SQLiteDatabase db,ArrayList<String> notIn){

      
        Cursor cursorOther=null;
        cursorOther=db.rawQuery("SELECT DISTINCT * FROM words WHERE id NOT IN ('"+3+"') ORDER BY RANDOM()  LIMIT 0,4",null);
        
        int i=1;
        ArrayList<Word> quizWords=new ArrayList<Word>(3);
        if(cursorOther.moveToFirst()){
            
            for(int k=0;cursorOther.moveToNext();k++){

                Word word=new Word(cursorOther.getInt(0),cursorOther.getString(1),cursorOther.getString(2),cursorOther.getString(3),Integer.parseInt(cursorOther.getString(4)));
                quizWords.add(k,word);
                Log.v("i-->", String.valueOf(i)); // log sonuçları aşağıda mevcut
                Log.v("current word --_>",word.toString()); // o anki word nesnesi

                i++;
                //tempWord=null;

            }
            cursorOther.close();
            db.close();

        }else{
            Log.v("Sorgu null","Sorgu null");
        }
         Word[] words=new  Word[]{quizWords.get(0),quizWords.get(1),quizWords.get(2)};


        return words;
    }

Log sonuçları.Yani döngüde benzersiz veri geldiği kesin.ArrayList yerine Word dizisii tanımlayıp öyle denediğimde de böyle oldu( Word dizisinin nesnesini döngünün üstünde tanımlamıştım orada da bir hata yok).

07-07 21:57:59.955  13150-13150/com.foo.foo V/i-->﹕ 1
07-07 21:57:59.955  13150-13150/com.foo.foo V/current word --_>﹕ {"group_id":1,"tr":"gitmek","en":"go"}
07-07 21:57:59.955  13150-13150/com.foo.foo V/i-->﹕ 2
07-07 21:57:59.955  13150-13150/com.foo.foo V/current word --_>﹕ {"group_id":1,"tr":"kutlamak","en":"celebrate"}
07-07 21:57:59.955  13150-13150/com.foo.foo V/i-->﹕ 3
07-07 21:57:59.955  13150-13150/com.foo.foo V/current word --_>﹕ {"group_id":1,"tr":"girmek","en":"enter, come in"}

 

2 Görüntülenme

1 Cevap

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

picture-46073-1436252551.jpg
enestepehan
08.07.2015 - 05:21

Sanırım ve büyük bir ihtimalle ;

for(int k=0;cursorOther.moveToNext();k++){

Word word=new Word(cursorOther.getInt(0),cursorOther.getString(1),cursorOther.getString(2),cursorOther.getString(3),Integer.parseInt(cursorOther.getString(4)));
quizWords.add(k,word);

//For dögüsünün içinde tanımladgın şu altını çizdiğim Word word objesini For dögüsünün dışında yukarıda biryerde tanımlamyı dene derim..

Umarım faydalı olur..

Mustafa
08.07.2015 - 11:01
Cevabın için teşekkürler. Fakat Word objesi her döngüde yeniden oluşturulduğu için ondan olma ihtimali gözükmüyor.