Читайте много документов, но не можете понять, что я делаю неправильно. Я просто пытаюсь загрузить данные с курсором и показать его в ListView с помощью SimpleCursorAdapter.Here мой код:Android ListView и SimpleCursosrAdapter: ничего не отображается
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.select_expense_category);
DBHelper dbHelper = new DBHelper(this);
SQLiteDatabase db = dbHelper.getReadableDatabase();
String q = "SELECT rowid as _id, " + GLO.DBEntry_Categories.COLUMN_CATEGORY +
" FROM " + GLO.DBEntry_Categories.TABLE_NAME;
Cursor cursor = db.rawQuery(q, new String[]{});
cursor.moveToFirst();
Toast toast = Toast.makeText(this, "Read count: " + Integer.toString(cursor.getCount()) + " " + cursor.getString(0), Toast.LENGTH_LONG);
toast.show();
cursor.moveToFirst();
//TODO: use Loader
String[] fromCols = {GLO.DBEntry_Categories.COLUMN_CATEGORY};
int[] toViews = {R.id.MyTextView1};
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, cursor,
fromCols, toViews, 0);
ListView listView = (ListView) findViewById(R.id.SelectExpenseCategory_list);
listView.setAdapter(adapter);
}
Так тост сообщение показывает, что 3 элементы в позиции курсора и данные peresent (по крайней мере в первый, но я уверен и для других). Но ничего не отображается в ListView.
Вот часть моего макета деятельности:
<ListView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/SelectExpenseCategory_search"
android:layout_centerHorizontal="true"
android:id="@+id/SelectExpenseCategory_list">
</ListView>
А вот полный файл для размещения элемента:
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/MyTextView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:padding="5dp"
android:textColor="@color/cm_dark_green"
android:textSize="24sp">
</TextView>
Любые идеи, что это неправильно ..
Я изменил toViews на внутренний идентификатор, как вы предполагали, но ничего не изменилось. В моем ListView ничего нет :( – Andrew
@ Andy и Toast показывают правильный подсчет – Simas
Да. Я изменил его, чтобы показать количество всех записей и содержимого первых двух записей, и он показывает, что в базе данных есть 4 записи и первый два имеет значение – Andrew