Android 使用SQLite数据跳过ListActivity中的空值

Android 使用SQLite数据跳过ListActivity中的空值,android,sqlite,listactivity,Android,Sqlite,Listactivity,我可以在文本视图中显示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 g

我可以在
文本视图中显示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);
}

您可以在db.query中应用where子句以获取非空值,这样光标就不会有空行。

扩展SimpleCursorAdapter并在重写的bindView()方法中检查借用的val是否为空。大概是这样的:

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

这没有经过测试,您还需要实现其他代码,但这正是我的想法。

但我想显示所有id和标题,仅对借用的值不显示null。我不知道如何在query中表达它。Cursor Cursor=db.query(TABLE_NAME,FROM,followed+“IS NOT NULL”,NULL,NULL,NULL,ORDER_BY);仅显示借来值的标题不为null:-/I要显示所有标题,并在具有借来值的标题上显示图像!=NULL由于您的适配器需要逻辑来更改视图,您需要扩展SimpleCorsOrAdapter并在bindView中执行任何您想要的操作。扩展类的方法看起来不错,但我仍然不知道在“//Handle not NULL”场景中我将要做什么“我应该将R.id.保留在to字符串中吗?我不想显示那个值,我想显示一个按钮什么的。