Pegar o último valor da SQLite salvo

Aprendendo Sqlite
Estou tentando setar um texto com o último valor salvo no SQLite. Vocês sabem como fazer isso .
.
.
package com.testesqlite.myapplication;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;

public class BD {
private SQLiteDatabase bd;

public BD(Context context){
	BDCore auxBd = new BDCore(context);
	bd = auxBd.getWritableDatabase();
}


public void inserir(Usuario usuario){
	ContentValues valores = new ContentValues();
	valores.put("nome", usuario.getNome());
	
	bd.insert("usuario", null, valores);
}


public void atualizar(Usuario usuario){
	ContentValues valores = new ContentValues();
	valores.put("nome", usuario.getNome());

	bd.update("usuario", valores, "_id = ?", new String[]{""+usuario.getId()});
}


public void deletar(Usuario usuario){
	bd.delete("usuario", "_id = "+usuario.getId(), null);
}

}
package com.testesqlite.myapplication;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class BDCore extends SQLiteOpenHelper {
private static final String NOME_BD = “teste”;
private static final int VERSAO_BD = 1;

public BDCore(Context ctx){
	super(ctx, NOME_BD, null, VERSAO_BD);
}


@Override
public void onCreate(SQLiteDatabase bd) {
	bd.execSQL("create table usuario(_id integer primary key autoincrement, nome text not null);");
}

@Override
public void onUpgrade(SQLiteDatabase bd, int arg1, int arg2) {
	bd.execSQL("drop table usuario;");
	onCreate(bd);
}

}
package com.testesqlite.myapplication;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.testesqlite.myapplication.R;
import android.database.sqlite.SQLiteDatabase;

public class MainActivity extends Activity {
private Usuario usuario = new Usuario();

EditText edittexto;
TextView texto;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edittexto = (EditText) findViewById(R.id.edittexto);
texto = (TextView) findViewById(R.id.texto);
BD bd = new BD(this);
texto.setText(usuario.getNome());
}
public void Salvar(View view) {
edittexto = (EditText) findViewById(R.id.edittexto);

	usuario.setNome(edittexto.getText().toString());
BD bd = new BD(this);
	

	bd.inserir(usuario);
	
	Toast.makeText(this, "Usuário inserido com sucesso!", Toast.LENGTH_SHORT).show();


}

}

Dá uma olhada

SELECT *FROM usuario WHERE _id = (SELECT MAX( _id ) FROM usuario);

@programador1225
Não estendi muito bem …
Isso
SELECT *FROM usuario WHERE _id = (SELECT MAX( _id ) FROM usuario);
É para colocar onde?

Essa query vai trazer o ultimo usuário inserido no banco de dados.

@programador1225
Como ficaria fazendo mais ou menos assim .
public String somarCategoria() {
String total = “”;
String SelectQuery = “select nome FROM usuario”;
Cursor cursor = bd.rawQuery(SelectQuery, null);

if (cursor.moveToNext()) {

total = cursor.getString(0);
}
return total;
}
ISSO é aplicável? Mudando algumas coisas.

Tenta isso :

 StringBuilder select = new StringBuilder();
            select.append("SELECT *FROM usuario WHERE _id = (SELECT MAX( _id ) FROM usuario");

            Cursor dados = bd.rawQuery(select.toString(), null);

            Usuario usuario = null;

            if (dados.getCount() != 0)
            {
                usuario = new Usuario();

                dados.moveToNext();
                
                 usuario.setId(dados.getInt(dados.getColumnIndex("_id")));
                usuario.setNome(dados.getString(dados.getColumnIndex("nome")));
        
            }

@programador1225
Esse teu código que você postou vai retornar o que?
No último código que eu postei . Eu consigo setar no TextView o primeiro valor que foi salvo… mas eu quiria o último.

Seguinte cara, o ultimo código que postei criar um usuário com os dados do ultimo registro inserido no banco de dados.
Na sua classe BD crie um método chamado getUltimoUsuario com o seguinte corpo.

public Usuario getUltimoUsuario(Context context)
{                                
     // Cria um SQLiteDatabase para leitura
   SQLiteDatabase bd = new BDCore(context).getReadableDatabase();

    StringBuilder select = new StringBuilder();
    Usuario usuario = null;

    // Query para buscar o ultimo registro inserido no Banco de Dados
    select.append("SELECT *FROM usuario WHERE _id = (SELECT MAX( _id ) FROM usuario");
        
    // Executa a Query e armazena os dados retornados em um Cursor
    Cursor dados = bd.rawQuery(select.toString(), null);

   // Verifica se retornou ao menos um registro
        if (dados.getCount() != 0)
        {
          // Instancia um Objeto do Tipo Usuario para armazenar os dados
          usuario = new Usuario();
         
         // Move o cursor para o próximo registro 
          dados.moveToNext();

          // Preenche o Objeto usuario com os dados do cursor   
          usuario.setId(dados.getInt(dados.getColumnIndex("_id")));
          usuario.setNome(dados.getString(dados.getColumnIndex("nome")));
      }
    // Retorna o usuário que contém os dados do ultimo registro inserido no banco
      return usuario;
        }

}

O método criado acima retorna o ULTIMO Usuário inserido no banco.

Agora é só chamar este método na sua MainActivity e ele vai te retornar o ULTIMO usuario inserido no banco de dados.

Agora na sua MainActivity faça o seguinte :

 Usuario usuario = new BD(this).getUltimoUsuario(this);

if(usuario != null)
{
        Toast.makeText(this, "Ultimo usuário salvo : "+usuario.getNome(), Toast.LENGTH_SHORT).show();
}

@programador1225
Obrigado por sua atenção.

Editei a resposta