Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Como fazer verificação de usuario senha já cadastrados

Gente to fazendo um aplicativo pro meu TCC, nele eu faço um cadastro de usuários e guardo em um banco SQLite. Como eu posso pegar esses dados já cadastrados e fazer uma verificação com o que o usuario digitou? No meu código eu deixei os valores fixos, segue abaixo:

if ("regina".equals(usuarioInformado) && "12345".equals(senhaInformada)) {

                    startActivity(new Intent(AdmActivity.this, EquipesProvasActivity.class));

                } else {
                    Toast.makeText(AdmActivity.this, "Usuário ou senha inválido", Toast.LENGTH_SHORT).show();
                }

Abaixo o helper:

public class CadastroHelper {
    private final EditText campoNome;
    private final EditText campoUsuario;
    private final EditText campoSenha;

    private final Cadastro cadastro;

    public CadastroHelper(CadastroActivity activity) {
        campoNome = (EditText) activity.findViewById(R.id.cadastro_nome);
        campoUsuario = (EditText) activity.findViewById(R.id.cadastro_usuario);
        campoSenha = (EditText) activity.findViewById(R.id.cadastro_password);

        cadastro = new Cadastro();

    }

    public Cadastro pegaCadastro() {
        cadastro.setNome(campoNome.getText().toString());
        cadastro.setUsuario(campoUsuario.getText().toString());
        cadastro.setSenha(campoSenha.getText().toString());
        return cadastro;
    }
}

E aqui o parte do meu banco:

public class CadastroDAO extends SQLiteOpenHelper{

    private Cadastro cadastro;

    public CadastroDAO(Context context ){
        super(context, "Gincana", null, 1);

    }
    @Override
    public void onCreate(SQLiteDatabase db) {
        String sql = "CREATE TABLE Cadastro (id INTEGER PRIMARY KEY," +
                " nome TEXT NOT NULL," +
                " usuario TEXT NOT NULL," +
                " senha TEXT NOT NULL)";
        db.execSQL(sql);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        String sql="DROP TABLE IF EXISTS Cadastro";
        db.execSQL(sql);
        onCreate(db);
    }

    public void insere(Cadastro cadastro){
        SQLiteDatabase db = getWritableDatabase(); // referencia que possa escrever

        ContentValues dados = pegaDadosDoCadastro(cadastro);

        db.insert("Cadastro", null, dados);

    }

    public ContentValues pegaDadosDoCadastro(Cadastro cadastro) { // chave e valor
        ContentValues dados = new ContentValues();
        dados.put("nome", cadastro.getNome());
        dados.put("usuario", cadastro.getUsuario());
        dados.put("senha", cadastro.getSenha());
        return dados;
    }
}
4 respostas

Boa noite Anelise, você pode fazer uma query passando login e senha, e se tiver na sua base, retorna o objeto e você compara com null

Olá Guilherme, pode me dar um exemplo?

solução!

Vou te responder um forma genérica para você utilizar a ideia independente da tecnologia ta? Geralmente criamos um método no DAO que recebe o usuario e retorna um boolean se ele existir no banco, algo assim:

public boolean isUserValid(Usuario usuario) {
    String sql = "select * from usuarios where user=? and senha=?";
}

Assim sua aplicação recebe os dados da tela, monta um objeto Usuario, passa esse objeto para o DAO e ele se vira em validar se o usuário é válido ou não

De novo, você é demais! Obrigada Guilherme. Segue abaixo o código:

public boolean isUserValid(Cadastro usuario) {
        SQLiteDatabase db = getWritableDatabase();
        String sql = "select * from Cadastro where usuario=? and senha=?";
        db.execSQL(sql);

        return true;
    }

E aqui a validação:

            String usuarioInformado = usuario.getText().toString();
             String senhaInformada = senha.getText().toString();

                CadastroDAO dao = new CadastroDAO(AdmActivity.this);
                Cadastro users = new Cadastro();

                users.setUsuario(usuarioInformado);
                users.setSenha(senhaInformada);

                boolean valido = dao.isUserValid(users);

                if (valido) {

                    startActivity(new Intent(AdmActivity.this, EquipesProvasActivity.class));

                }
                else {
                    Toast.makeText(AdmActivity.this, "Usuário ou senha inválido", Toast.LENGTH_SHORT).show();
                }