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字符串中吗?我不想显示那个值,我想显示一个按钮什么的。