Tengo una tabla question_table
y una ImageButton
(Atrás). Necesito obtener el último registro insertado de la base de datos después de hacer clic en Atrás.¿Cómo obtener el último registro de Sqlite?
Mi fila contiene las siguientes columnas: question
, optionA
, optionB
, optionC
, optionD
, y necesito los datos para su uso en mi Activity
. Creo un método en la base de datos pero no funciona.
Aquí es el código de referencia:
MySQLiteHelper.java extracto:
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;
}
OnClickListner
de AddQuestionActivity.java
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();
}
}
});
Por favor, dame alguna pista.
Gracias de antemano ..
también útil para mí. Gracias. –
Disfrutar .... Hardik – Hasmukh
Esta es una muy mala solicitud para ese fin porque 'sqlite' debe ordenar todos los registros por su id (lento) antes de devolver el resultado, Stephen Nguyen dio una solicitud óptima con' DESC' y 'LIMIT 1' –