Estou desenvolvendo um app: com login, cadastro e etc, e encontrei um problema, quando vou colocar a funcionalidade de verificar login, num código a parte, para separar funções, não deixando que fique varias funcionalidades que podem ser reutilizadas na main_activity, segue o codigo
Main_Activity.java
public class MainActivity extends AppCompatActivity {
private static final String TAG = "Banco de dados";
EditText editTextLogin, editTextSenha;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
//Redirecionamento para o cadastro
public void buttonCadastro(View view) {
Intent intent = new Intent(this, CadastroActivity.class);
startActivity(intent);
}
///BotãoEntrar
public void buttonEntrar(View view) {
editTextLogin = (EditText) findViewById(R.id.editTextLogin);
editTextSenha = (EditText) findViewById(R.id.editTextSenha);
String login = editTextLogin.getText().toString();
String senha = editTextSenha.getText().toString();
if(LoginValidacao.PegaDadosEVerifica (login, senha)){
Intent intent = new Intent(MainActivity.this, TelaInicialActivity.class);
startActivity(intent);
}else{
Log.i(TAG, "Senha Invalida!");
}
}
}
LoginValidacao.java (A classe de verificação):
public class LoginValidacao {
public Boolean PegaDadosEVerifica(String nome, String senha){
// Configuração para acesso ao banco de dados
LoginDadosOpenHelper DBHelper = new LoginDadosOpenHelper(getBaseContext());
//ATENÇÃO: getReadableDataBase = pegar um banco de dados que pode ser lido
SQLiteDatabase DB = DBHelper.getReadableDatabase();
//Cursor é uma classe para "navegar" por uma lista de banco de dados, de acordo com os parametros
Cursor cursor = DB.rawQuery(
"SELECT NOME, SENHA " +
"FROM LOGIN_CADASTRADO " +
"WHERE NOME = ? AND SENHA = ?",
new String[] {nome, senha});
//Detalhe pelo sql, "WHERE NOME =? AND SENHA =?" => "=?" é o parametro que ele vai receber
// E esses parametos são colocados em ordem
cursor.moveToFirst();
// .moveToFirst move o cursor para o inicio da lista, podendo se verificar os dados
if(cursor.getCount() > 0){
//Se mais resultados com os parametros definidos acima, estiverem corretos
DB.close();//Em toda situação o banco de dados precisa ser fechado
return true;
}
cursor.close();
DB.close();
return false;
}
}
O que ele reclama é na parte getbaseContext, quando esse codigo de validação esta na main_activity, ele funciona perfeitamente, quando eu separo num código a parte, e chamo o método, ele da esse erro, como se não tivesse o contexto da aplicação, ja tentei seguir as recomendações do app, testar varios codigos, e nada.
Alguém tem uma ideia?