В представлении списка отображается только 1 результат запроса - PullRequest
1 голос
/ 14 июня 2011

Таким образом, я наконец-то получил мой просмотр списка для отображения результатов из моего запроса к БД, но по какой-то причине он показывает только 1, последний.* Может ли кто-нибудь дать мне знать, что я делаю неправильно?Почему он не отображает каждую строку в БД?

РЕДАКТИРОВАТЬ: Вот мой XML-файл

<?xml version="1.0" encoding="utf-8"?>
<TextView 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@id/android:list"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="16sp"
    android:padding="10dp"/>

NEW (правильный путь):

public class PastGames extends ListActivity {

@Override

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //setContentView(R.layout.pastgames);


    db.open();
    Cursor c = db.getAllFinalscores();
    String[] listData = new String[c.getCount()];
    if (c.moveToFirst())
    {
    do {

        listData[c.getPosition()] = "Date: " + c.getString(1) + "\n" +
            "Strokes: " + c.getString(2) + "\n" + "Holes: " + c.getString(3);
    }
        while (c.moveToNext());
        this.setListAdapter(new ArrayAdapter<String>(this,
            R.layout.pastgames, listData));
    }
    db.close()
}

}

Ответы [ 2 ]

4 голосов
/ 14 июня 2011

Для каждой строки в вашем массиве вы устанавливаете ListAdapter в цикле.Вот почему вы отображаете только последний ...

String[] listData;
do {
     listData[i] = "Date: " + c.getString(1) + "\n" +
                        "Strokes: " + c.getString(2) + "\n" + "Holes: " + c.getString(3);
   }
while (c.moveToNext());
this.setListAdapter(new ArrayAdapter<String>(this,
                        R.layout.pastgames, listData));

Заполните ваш массив в цикле while.А затем вызовите this.setListAdapter () только один раз.Это решит проблему

1 голос
/ 14 июня 2011

Вы переинициализируете ListData при выполнении цикла evey

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...