Пропускать нулевые значения в ListActivity с данными SQLite - PullRequest
0 голосов
/ 01 сентября 2011

Я могу показать идентификатор, заголовок и заимствованные значения в TextView. Моя проблема в том, что я хотел бы проверить «заимствованные» значения и, если они не null, отобразить простое изображение. Если значение null, я не хочу ничего отображать.

Может работать с ViewBinder, но я не знаю, как это решить.

private static String[] FROM = { _ID, TITLE, BORROWED };
private static String[] TO = { R.id.id, R.id.title, R.id.borrowed };

private Cursor getMovies() {
    SQLiteDatabase db = movies.getReadableDatabase();
    Cursor cursor = db.query(TABLE_NAME, FROM, null, null, null, null, ORDER_BY);
    startManagingCursor(cursor);
    return cursor;
}

private void showTitles(Cursor cursor) {
    SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.item, cursor, FROM, TO);
    setListAdapter(adapter);
}

Ответы [ 2 ]

2 голосов
/ 01 сентября 2011

Расширьте свой SimpleCursorAdapter и проверьте наличие нулевого значения BORROWED val в переопределенном методе bindView ().Примерно так:

private class mySimpleCursorAdapter extends SimpleCursorAdapter{ 

    @Override
    public void bindView(View view, Context context, Cursor cursor) {
             if ( cursor.isNull( cursor.getColumnIndex(BORROWED) ) ){
                   // Handle NULL scenario
             } else {
                   // Handle not NULL scenario
             }
    }
}

Это не проверено, и есть другой код, который вам нужно реализовать, но это идея.

0 голосов
/ 01 сентября 2011

Вы можете применить выражение where в db.query для ненулевых значений, чтобы у вашего курсора не было только нулевых строк.

...