Android 检索sqlite数据库的最后一条记录
我想设置上次从“number”列检索数据的文本 在运行时,我收到以下错误:Android 检索sqlite数据库的最后一条记录,android,Android,我想设置上次从“number”列检索数据的文本 在运行时,我收到以下错误: public class PlaceCallActivity extends BaseActivity { private static final String SELECT_SQL = "SELECT * FROM numbers"; protected void onCreate(Bundle savedInstanceState) { opendatabase();
public class PlaceCallActivity extends BaseActivity {
private static final String SELECT_SQL = "SELECT * FROM numbers";
protected void onCreate(Bundle savedInstanceState) {
opendatabase();
c = db.rawQuery(SELECT_SQL, null);
c.moveToLast();
userNo.setText(c.getString(c.getColumnIndex("number")));
}
public void opendatabase(){
db=openOrCreateDatabase("NumberDB", Context.MODE_PRIVATE, null);
}
错误在我设置文本的第行
即“userNo.setText(c.getString(c.getColumnIndex(“number”)));”由于游标中没有数据,所以出现此错误,在从游标中获取数据之前,必须先检查其计数
CursorIndexOutOfBoundsException: Index -1 requested, with a size of 0
你会调试并检查c.getColumnIndex(“number”)的值吗?我想问题是没有找到你正在请求的数据。好的,没有插入的数据?我在另一个活动中正在做的事情我想你几乎做到了,但我想,通过做上面的事情,我遇到了更多的问题,因为我使用共享首选项创建登录,并使用此选项,即使我删除了我的应用程序,它仍然会进入或传递到另一个活动,而不会进入我插入数据的第一个位置。所以它将null值带到这个PlaceCallActivity,所以我执行了android:allowBackup=“false”然后我得到这个错误:任务执行失败:app:processDebugManifest'>清单合并失败:属性application@allowBackupAndroidManifest.xml:21:13-40中的值=(false)也存在于[com.msg91.sendotp.library:library:2.7]AndroidManifest.xml:12:9-35值=(true)。建议:向AndroidManifest.xml:19:5-50:19处的元素添加“tools:replace=“android:allowBackup””以覆盖。@SameerKhan1406然后按照消息的建议执行,并尝试添加“tools:replace=“android:allowBackup”“首先,我使用共享首选项创建登录,这样登录屏幕只出现一次,在同一活动中,我也在插入数据。还有一个活动,我正在做更多的重磅提升,因为第二个活动需要我插入的编号,所以我尝试从我在登录中创建的数据库中检索最后插入的编号activity@Raghavendra多亏你帮了我一部分,现在我想没有后援了
if(c.getCount()!=0)
{
if(c.moveToLast())
{
}
}
public class PlaceCallActivity extends BaseActivity {
private static final String SELECT_SQL = "SELECT * FROM numbers";
protected void onCreate(Bundle savedInstanceState) {
opendatabase();
c = db.rawQuery(SELECT_SQL, null);
if(c.getCount()>0)
{
c.moveToLast();
userNo.setText(c.getString(c.getColumnIndex("number")));
}
}
public void opendatabase(){
db=openOrCreateDatabase("NumberDB", Context.MODE_PRIVATE, null);
}