Olá, Tente fazer conforme abaixo:
Primeiramente o layout…
res/layout/activity_login.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<EditText
android:id="@+id/editUsuario"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:ems="10"
android:hint="Usuário"
android:inputType="textEmailAddress" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/editSenha"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editUsuario"
android:layout_below="@+id/editUsuario"
android:layout_marginTop="33dp"
android:ems="10"
android:hint="Senha"
android:inputType="textPassword" />
<Button
android:id="@+id/btnValidar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/editSenha"
android:layout_centerHorizontal="true"
android:layout_marginTop="46dp"
android:onClick="validar"
android:text="Validar" />
</RelativeLayout>
Classe que exdente SQLiteOpenHelper que terá a responsabilidade de criar o nosso banco de dados para o exemplo…
/**
*
*/
package com.example.login;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
/**
* @author Cristian Chies 10/12/2012
*
*/
public class DataBase extends SQLiteOpenHelper {
private final static int VERSAO = 1;
private final static String NOME = "nomebanco.sqlite";
private static final String CREATE = "CREATE TABLE usuario (id INTEGER PRIMARY KEY AUTOINCREMENT, usuario VARCHAR( 20 ) NOT NULL, senha VARCHAR( 8 ));";
protected SQLiteDatabase database;
public DataBase(Context context) {
super(context, NOME, null, VERSAO);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
public SQLiteDatabase getDatabase() {
if (database == null) {
database = getWritableDatabase();
}
return database;
}
}
A Classe que irá representar seu Objeto a ser persistido (Usuário) …
/**
*
*/
package com.example.login;
/**
* @author Cristian Chies 10/12/2012
*
*/
public class Usuario {
private Integer id;
private String usuario;
private String senha;
/**
* @param id
* @param usuario
* @param senha
*/
public Usuario(Integer id, String usuario, String senha) {
this.id = id;
this.usuario = usuario;
this.senha = senha;
}
/**
* @return the id
*/
public Integer getId() {
return id;
}
/**
* @param id
* the id to set
*/
public void setId(Integer id) {
this.id = id;
}
/**
* @return the senha
*/
public String getSenha() {
return senha;
}
/**
* @param senha
* the senha to set
*/
public void setSenha(String senha) {
this.senha = senha;
}
/**
* @return the usuario
*/
public String getUsuario() {
return usuario;
}
/**
* @param usuario
* the usuario to set
*/
public void setUsuario(String usuario) {
this.usuario = usuario;
}
}
O DAO de Usuário…
/**
*
*/
package com.example.login;
import java.util.ArrayList;
import java.util.List;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
/**
* @author Cristian Chies 10/12/2012
*
*/
public class UsuarioDAO extends DataBase {
private final String TABLE = "usuario";
public UsuarioDAO(Context context) {
super(context);
}
public void insert(Usuario usuario) throws Exception {
ContentValues values = new ContentValues();
values.put("usuario", usuario.getUsuario());
values.put("senha", usuario.getSenha());
getDatabase().insert(TABLE, null, values);
}
public void update(Usuario usuario) throws Exception {
ContentValues values = new ContentValues();
values.put("usuario", usuario.getUsuario());
values.put("senha", usuario.getSenha());
getDatabase().update(TABLE, values, "id = ?", new String[] { "" + usuario.getId() });
}
public Usuario findById(Integer id) {
String sql = "SELECT * FROM " + TABLE + " WHERE id = ?";
String[] selectionArgs = new String[] { "" + id };
Cursor cursor = getDatabase().rawQuery(sql, selectionArgs);
cursor.moveToFirst();
return montaUsuario(cursor);
}
public List<Usuario> findAll() throws Exception {
List<Usuario> retorno = new ArrayList<Usuario>();
String sql = "SELECT * FROM " + TABLE;
Cursor cursor = getDatabase().rawQuery(sql, null);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
retorno.add(montaUsuario(cursor));
cursor.moveToNext();
}
return retorno;
}
public Usuario montaUsuario(Cursor cursor) {
if (cursor.getCount() == 0) {
return null;
}
Integer id = cursor.getInt(cursor.getColumnIndex("id"));
String usuario = cursor.getString(cursor.getColumnIndex("usuario"));
String senha = cursor.getString(cursor.getColumnIndex("senha"));
return new Usuario(id, usuario, senha);
}
/**
* @param usuario
* @param senha
* @return
*/
public Usuario findByLogin(String usuario, String senha) {
String sql = "SELECT * FROM " + TABLE + " WHERE usuario = ? AND senha = ?";
String[] selectionArgs = new String[] { usuario, senha };
Cursor cursor = getDatabase().rawQuery(sql, selectionArgs);
cursor.moveToFirst();
return montaUsuario(cursor);
}
}
O método findByLogin(String usuario, String senha) é um exemplo de como pode ser feita a consulta no banco…
Agora vamos fazer uma classe de Controle para manipular os dados (pesquise um pouco sobre MVC e Design pattern :D)…
/**
*
*/
package com.example.login;
import java.util.List;
import android.content.Context;
/**
* @author Cristian Chies 10/12/2012
*
*/
public class UsuarioController {
private static UsuarioDAO usuarioDAO;
private static UsuarioController instance;
public static UsuarioController getInstance(Context context) {
if (instance == null) {
instance = new UsuarioController();
usuarioDAO = new UsuarioDAO(context);
}
return instance;
}
public void insert(Usuario usuario) throws Exception {
usuarioDAO.insert(usuario);
}
public void update(Usuario usuario) throws Exception {
usuarioDAO.update(usuario);
}
public List<Usuario> findAll() throws Exception {
return usuarioDAO.findAll();
}
public boolean validaLogin(String usuario, String senha) throws Exception {
Usuario user = usuarioDAO.findByLogin(usuario, senha);
if (user == null || user.getUsuario() == null || user.getSenha() == null) {
return false;
}
String informado = usuario + senha;
String esperado = user.getUsuario() + user.getSenha();
if (informado.equals(esperado)) {
return true;
}
return false;
}
}
Agora a classe que extende Activity…
package com.example.login;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
public class LoginActivity extends Activity {
private EditText editUsuario, editSenha;
private Context context;
private UsuarioController usuarioController;
private AlertDialog.Builder alert;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
context = this;
usuarioController = UsuarioController.getInstance(context);
editUsuario = (EditText) findViewById(R.id.editUsuario);
editSenha = (EditText) findViewById(R.id.editSenha);
try {
testaInicializacao();
} catch (Exception e) {
exibeDialogo("Erro inicializando banco de dados");
e.printStackTrace();
}
}
/**
* @throws Exception
*/
public void testaInicializacao() throws Exception {
if (usuarioController.findAll().isEmpty()) {
Usuario usuario = new Usuario(null, "cristian", "12345678");
usuarioController.insert(usuario);
}
}
/**
*
*/
public void exibeDialogo(String mensagem) {
alert = new AlertDialog.Builder(context);
alert.setPositiveButton("OK", null);
alert.setMessage(mensagem);
alert.create().show();
}
public void validar(View view) {
String usuario = editUsuario.getText().toString();
String senha = editSenha.getText().toString();
try {
boolean isValid = usuarioController.validaLogin(usuario, senha);
if (isValid) {
exibeDialogo("Usuario e senha validados com sucesso!");
} else {
exibeDialogo("Verifique usuario e senha!");
}
} catch (Exception e) {
exibeDialogo("Erro validando usuario e senha");
e.printStackTrace();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_login, menu);
return true;
}
}
Esse é um exemplo bem simples de como implementar espero que ajude… abraço…