Android SQLite: как использовать rawquery с функциями Order By и Descending?

Я не очень знаком с программированием Android, но все же я могу понять коды, моя единственная проблема в том, что я не могу получить выходные данные, которые мне нужны для моего игрового приложения на Android Eclipse, я просто хотел получить данные из моей базы данных и отобразить рекорды из 3 различных текстовых полей, например:

TextField1 <-- this will be the highest score of a player will be displayed
TextField2 <-- this will be the second highest next to textfield1
TextField3 <-- this will be the third highest score

Мне действительно не повезло, кодирование, я думал, что это будет легко, как делать вещи в PHP, но это отстой для меня, я новичок в Android, если кто-то может помочь мне, пожалуйста, сделайте 🙂

Кстати: это код, над которым я работал, но мне не повезло показать то, что я хотел

try{
db = openOrCreateDatabase("DodgerDB",MODE_PRIVATE,null);

Cursor c = db.rawQuery("select * from ScoresTable order by scoreVALUE desc",null);

while(c.moveToNext()){
scoreid = c.getInt(c.getColumnIndex("scoreID"));

score = c.getInt(c.getColumnIndex("scoreVALUE"));

date = c.getString(c.getColumnIndex("scoreDATE"));ScoreView1.setText("score id:"+scoreid+" score:"+score+" date:"+date);

ScoreView2.setText("score id:"+scoreid+" score:"+score+" date:"+date);

ScoreView3.setText("score id:"+scoreid+" score:"+score+" date:"+date);

}//end of while loop }//end of try statement

catch(Exception er) {
Toast.makeText(ScoresActivity.this, ""+er, Toast.LENGTH_SHORT).show();
}

Тем не менее, у меня есть только те же идентичные (данные) вывод, поступающий из базы данных на этих 3 полях, пожалуйста, помогите 🙁

0

Решение

В этом случае вы увидите только последний ряд от вашего курсора. Каждая итерация извлекает строку из курсора и предыдущие значения в TextView перезаписываются каждый раз.

Попробуйте это, чтобы понять, как это работает:

while(c.moveToNext()){
scoreid = c.getInt(c.getColumnIndex("scoreID"));

score = c.getInt(c.getColumnIndex("scoreVALUE"));

date = c.getString(c.getColumnIndex("scoreDATE"));

Log.d("SomeTag", "score id:"+scoreid+" score:"+score+" date:"+date);

}

UPD: чтобы показать ваши 3 строки в разных TextViews:

c.moveToNext();
scoreid = c.getInt(c.getColumnIndex("scoreID"));
score = c.getInt(c.getColumnIndex("scoreVALUE"));
date = c.getString(c.getColumnIndex("scoreDATE"));
ScoreView1.setText("score id:"+scoreid+" score:"+score+" date:"+date);

c.moveToNext();
scoreid = c.getInt(c.getColumnIndex("scoreID"));
score = c.getInt(c.getColumnIndex("scoreVALUE"));
date = c.getString(c.getColumnIndex("scoreDATE"));
ScoreView2.setText("score id:"+scoreid+" score:"+score+" date:"+date);

c.moveToNext();
scoreid = c.getInt(c.getColumnIndex("scoreID"));
score = c.getInt(c.getColumnIndex("scoreVALUE"));
date = c.getString(c.getColumnIndex("scoreDATE"));
ScoreView3.setText("score id:"+scoreid+" score:"+score+" date:"+date);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]