我有一张question_table号桌和一张ImageButton号桌.我需要在点击Back后从数据库中获取最后一条插入的记录.

我的行包含以下列:questionoptionAoptionBoptionCoptionD,我需要在我的Activity上使用这些数据.我在数据库中创建了一个方法,但它不起作用.

下面是供参考的代码:

MySQLiteHelper.java摘录:

public List<ObjectiveWiseQuestion> getLastInsertQuestion()
{
    // long index = 0;
    List<ObjectiveWiseQuestion>LocwiseProfileList=new ArrayList<ObjectiveWiseQuestion>();
    db = getReadableDatabase();
    Cursor cursor = db.query(
            "sqlite_sequence",
            new String[]{"seq"},
            "name = ?",
            new String[]{TABLE_QUESTION},
            null,
            null,
            null,
            null );

    if (cursor.moveToFirst())
    {
        do {
            ObjectiveWiseQuestion owq= new ObjectiveWiseQuestion();

            owq.setQuestion(cursor.getString(2));
            owq.setOptionA(cursor.getString(3));
            owq.setOptionB(cursor.getString(4));
            owq.setOptionC(cursor.getString(5));
            owq.setOptionD(cursor.getString(6));
            owq.setCorrectOption(cursor.getString(7));
            LocwiseProfileList.add(owq);
        } while(cursor.moveToNext());

        db.close();
    }

    return LocwiseProfileList;
}

AddQuestionActivity.javaOnClickListner

imgBack.setOnClickListener( new View.OnClickListener() 
{                       
    @Override
    public void onClick(View v) 
    {
        msg();
        emptyFormField();

        try {
            final List<ObjectiveWiseQuestion> LocWiseProfile =  db.getLastInsertQuestion();       

            for (final ObjectiveWiseQuestion cn : LocWiseProfile)
            {   
                db=new MySQLiteHelper(getBaseContext());
                db.getWritableDatabase();
                txtQuestion.setText(cn.getQuestion());
                txtOptionA.setText(cn.getOptionA());
                txtOptionB.setText(cn.getOptionB());
                txtOptionC.setText(cn.getOptionC());
                txtOptionD.setText(cn.getOptionD());
                txtCorrectOption.setText(cn.getCorrectOption());
                db.close();
            }
        } catch(Exception e) {
            e.printStackTrace();
        }           
    }
});

请给我一些提示.

推荐答案

Try this:

SELECT * 
    FROM    TABLE
    WHERE   ID = (SELECT MAX(ID)  FROM TABLE);

OR

您还可以使用以下解决方案:

SELECT * FROM tablename ORDER BY column DESC LIMIT 1;

Android相关问答推荐

如何让用户与我的应用生成的多个音频文件交互

关于BLE扫描工作原理的说明

使用RecycleView和Diffutils时从列表中删除项目时出现问题

Jetpack Compose-如何在进入新产品线之前删除单词?

第一次使用onBackPressed()、NavigateUp()加载时MapView崩溃

Android 12+BLE字节不同

从包含的(复合)模块导入 Kotlin 类时,Android 应用程序模块的 build.gradle.kts 未解决的引用错误

为什么 Android Studio 中的 theme.xml 目录没有任何原色

面向Jetpack Compose的可组合放置问题

Android Studio 在 list 文件中已经声明了活动类,但仍出现无法找到明确的活动类的错误

如何仅同步 local_manifest.xml?

Material 3 中的 ModalBottomSheet 用于 compose

如何让这个三角形指示器在 android jetpack compose 中旋转和移动?

获取 ArithmeticException:除以零,但我没有在任何地方除以零

在事件中使用 Context/Toast 时不需要的重组 - Jetpack Compose

Jetpack Compose Arc 进度条动画(如何重启动画)

如何在 Android 应用中录制短视频?

对话框中的内容不可见

ObjectBox,如何在冲突中放弃一切迁移?

如何满足设备内框架的无效 Wear OS 屏幕截图Wear OS 表盘策略违规?