Android 安卓:在SQLite数据库删除了数据之后,我如何确认数据库是空的?

Android 安卓:在SQLite数据库删除了数据之后,我如何确认数据库是空的?,android,database,android-sqlite,Android,Database,Android Sqlite,我是SQLite新手,正在努力测试数据库是否为空。我有一个由CardView填充的RecyclerView列表。每个CardView的数据来自更新SQLite数据库的用户输入UI。输入是一个简单的“名称”编辑文本。因此,如果用户输入两个名称,那么我将在RecyclerView列表中有两个CardView,在数据库中有两行。如果用户随后删除两个CardView,则应更新数据库,然后数据库将为空 如何检查数据库是否为空?我需要一个行计数为零或类似的指示符来显示数据库是空的。计数为零或指示器为零将允许

我是SQLite新手,正在努力测试数据库是否为空。我有一个由CardView填充的RecyclerView列表。每个CardView的数据来自更新SQLite数据库的用户输入UI。输入是一个简单的“名称”编辑文本。因此,如果用户输入两个名称,那么我将在RecyclerView列表中有两个CardView,在数据库中有两行。如果用户随后删除两个CardView,则应更新数据库,然后数据库将为空


如何检查数据库是否为空?我需要一个行计数为零或类似的指示符来显示数据库是空的。计数为零或指示器为零将允许我切换到ReyclView列表的不同布局,因为我需要更新列表以显示默认的零CardView布局,因为用户通过从数据库中的原始两行中删除两个名称删除了两个CardView。请告知。

检查表是否为空。计算表行数

public int getProfilesCount() { 
String countQuery = "SELECT  * FROM " + TABLE_NAME;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(countQuery, null);
int cnt = cursor.getCount();
cursor.close();
return cnt;} 

检查表是否为空。计算表中的行数

public int getProfilesCount() { 
String countQuery = "SELECT  * FROM " + TABLE_NAME;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(countQuery, null);
int cnt = cursor.getCount();
cursor.close();
return cnt;} 


谢谢,我会试试的。关闭光标可避免内存泄漏?不知道,但建议在完成后关闭光标。确定。您是否使用过getTaskCount和DatabaseUtils.queryNumEntries而不是GetProfileScont?GetProfileScont只是方法名称。您可以在这里拥有任何内容。方法只是计算表中的行数。好的,抱歉,时间太晚了,我一开始没有注意到这一点。因此,rawQuery是高效的,因为它不会加载所有的行。我想知道rawQuery是否比其他人推荐使用的DatabaseUtils.queryNumEntries更好。谢谢,我会试试的。关闭光标可避免内存泄漏?不知道,但建议在完成后关闭光标。确定。您是否使用过getTaskCount和DatabaseUtils.queryNumEntries而不是GetProfileScont?GetProfileScont只是方法名称。您可以在这里拥有任何内容。方法只是计算表中的行数。好的,抱歉,时间太晚了,我一开始没有注意到这一点。因此,rawQuery是高效的,因为它不会加载所有的行。我想知道rawQuery是否比其他人推荐使用的DatabaseUtils.queryNumEntries更好。好的,我可以试试。rawQuery是否避免加载所有行,因此非常有效?另外,在“moveToFirst()”之后不需要“getCount()”或类似的内容吗?好的,我可以试试。rawQuery是否避免加载所有行,因此非常有效?另外,在“moveToFirst()”之后不需要有“getCount()”或类似的内容吗?这表示将光标移动到数据库表的第一行。然后,如果行计数为零,则返回true?否,不需要将光标移到第一个。moveToFirst()从一开始就在游标上迭代,getCount()方法将返回行计数。对不起,这就是我的意思。光标移动到开始处并对行进行计数。那么,如果行计数为零,布尔值返回true是否正确?是否需要添加以下内容:mCursor.close();这表示将光标移动到数据库表的第一行。然后,如果行计数为零,则返回true?否,不需要将光标移到第一个。moveToFirst()从一开始就在游标上迭代,getCount()方法将返回行计数。对不起,这就是我的意思。光标移动到开始处并对行进行计数。那么,如果行计数为零,布尔值返回true是否正确?是否需要添加以下内容:mCursor.close();
Cursor mCursor = db.rawQuery("SELECT * FROM " + DATABASE_TABLE, null);
Boolean isdbempty= mCursor.getCount()>0 ? false:true;
mCursor.close();