Estou na aula 4 (Buscando aluno no banco), e meu aplicativo para quando confirmo o aluno com o menu do formulário!
O logcat informa isso:
07-22 20:04:39.113 15954-15991/br.com.alura.agenda E/Surface: getSlotFromBufferLocked: unknown buffer: 0xb8755000
AlunoDao
public class alunoDao extends SQLiteOpenHelper{
public alunoDao(Context context) {
super(context,"Agenda", null, 4);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE Alunos (id INTEGER PRIMARY KEY, nome TEXT NOT NULL, endereço TEXT, site TEXT, telefone TEXT, nota REAL);";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String sql = "DROP TABLE IF EXISTS Alunos";
db.execSQL(sql);
onCreate(db);
}
public void insere(Aluno aluno) {
SQLiteDatabase data = getWritableDatabase();
ContentValues dados = new ContentValues();
dados.put("nome",aluno.getNome());
dados.put("endereço",aluno.getEndereço());
dados.put("site",aluno.getSite());
dados.put("telefone",aluno.getTelefone());
dados.put("nota",aluno.getNota());
data.insert("Alunos", null, dados);
}
public List<Aluno> buscaluno() {
String sql = "SELECT * FROM Alunos ;";
SQLiteDatabase db = getReadableDatabase();
Cursor c = db.rawQuery(sql,null);
List<Aluno> alunos = new ArrayList<Aluno>();
while (c.moveToNext()){
Aluno aluno = new Aluno();
aluno.setId(c.getLong(c.getColumnIndex("id")));
aluno.setNome(c.getString(c.getColumnIndex("nome")));
aluno.setNota(c.getDouble(c.getColumnIndex("nota")));
aluno.setSite(c.getString(c.getColumnIndex("site")));
aluno.setEndereço(c.getString(c.getColumnIndex("endereço")));
aluno.setTelefone(c.getString(c.getColumnIndex("telefone")));
alunos.add(aluno);
}
c.close();
return alunos;
}
}
Formulario Activity (criei mais de uma opção no menu, mas somente para testar, acho q isso não tem haver com o problema)
package br.com.alura.agenda;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import br.com.alura.agenda.DAO.alunoDao;
import br.com.alura.agenda.modelo.Aluno;
public class FormularioActivity extends AppCompatActivity {
private FormularioHelper helper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_formulario);
Button salvar = (Button) findViewById(R.id.BotãoFormulario);
salvar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(FormularioActivity.this,"Clique Curto",Toast.LENGTH_SHORT).show();
finish();
}
});
salvar.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Toast.makeText(FormularioActivity.this,"Clique Longo",Toast.LENGTH_LONG).show();
return true;
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater infalter = getMenuInflater();
infalter.inflate(R.menu.menuformulario,menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case (R.id.menu_formulario_ok):
Toast.makeText(FormularioActivity.this,"Aluno criado",Toast.LENGTH_SHORT).show();
Aluno aluno = helper.pegaaluno();
alunoDao dao = new alunoDao(this);
dao.insere(aluno);
dao.close();
Toast.makeText(FormularioActivity.this,aluno.getEndereço(),Toast.LENGTH_SHORT).show();
break;
case (R.id.menu_novo):
Toast.makeText(FormularioActivity.this,"",Toast.LENGTH_SHORT).show();
break;
}
return super.onOptionsItemSelected(item);
}
}
Então, conseguem me ajudar com esse problema?