使用SQLite数据在ListActivity中跳过空值

时间:2011-09-01 15:48:30

标签: android sqlite listactivity

我可以在TextView中显示ID,标题和借用值。我的问题是我想检查“借来的”值,如果它们不是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 个答案:

答案 0 :(得分:2)

扩展SimpleCursorAdapter并在覆盖的bindView()方法中检查BORROWED val的null。像这样:

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
             }
    }
}

这未经过测试,您需要实施其他代码,但这是个主意。

答案 1 :(得分:0)

您可以将db.query中的where子句应用于非空值,以便您的游标只有空行..