Olá, preciso que ajuda na criação do banco de dados da minha aplicação, fiz tudo de acordo com video da aula 18 mas por algum motivo que não consigo resolver ele não esta criando a banco, a aplicação roda normalmente mas não registra nem exibe nenhum aluno que eu cadastro. Segue códigos da aplicação.
ps.: alguns códigos podem estar diferentes dos da aula pois tentei muitas coisas pra resolver o problema e não consegui.
Código java e xml do formulário:
package br.com.caelum.cadastro;
import ...
public class Formularioactivity extends Activity {
private FormularioHelper helper;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.formulario);
helper = new FormularioHelper(this);
Button botao = (Button) findViewById(R.id.Gravar);
botao.setOnClickListener( new OnClickListener() {
public void onClick(View v) {
Aluno aluno = helper.pegaAlunoDoFormulario();
AlunoDAO dao = new AlunoDAO(Formularioactivity.this);
dao.insere(aluno);
dao.close();
finish();
}
});
}
}
<ScrollView 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"
android:measureAllChildren="false" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:ignore="ScrollViewSize" >
<ImageButton
android:id="@+id/Foto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_gravity="center"
android:src="@drawable/ic_enviar" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/Foto"
android:text="Nome: " />
<EditText
android:id="@+id/Nome"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Digite seu nome aqui ..." />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Site: " />
<EditText
android:id="@+id/Site"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Digite seu site aqui ..." />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Endereço: " />
<EditText
android:id="@+id/Endereco"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Digite seu Endereço aqui ..." >
<requestFocus />
</EditText>
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Telefone: " />
<EditText
android:id="@+id/Telefone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Digite seu Telefone aqui ..." />
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Nota: " />
<SeekBar
android:id="@+id/Nota"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="10" />
<Button
android:id="@+id/Gravar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Gravar" />
</LinearLayout>
</ScrollView>
Código java e xml da lista de alunos:
package br.com.caelum.cadastro;
import ...
public class ListaAlunosActivity extends Activity{
private ListView listaAlunos;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listagem_alunos);
}
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater infrater = getMenuInflater();
infrater.inflate(R.menu.menu_principal, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.novo:
Intent intent = new Intent(ListaAlunosActivity.this,Formularioactivity.class);
startActivity(intent);
break;
default:
return super.onOptionsItemSelected(item);
}
return true;
}
protected void onResume() {
super.onResume();
AlunoDAO dao = new AlunoDAO(this);
List<Aluno> alunos = dao.getLista();
listaAlunos = (ListView) findViewById(R.id.lista);
ArrayAdapter<Aluno> adapter = new ArrayAdapter<Aluno>(this, android.R.layout.simple_list_item_1,alunos);
listaAlunos.setAdapter(adapter);
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/lista"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</ListView>
</LinearLayout>
Códigos java das classes Aluno,FormularioHelper:
package br.com.caelum.cadastro.modelo;
public class Aluno {
private String nome;
private String endereco;
private String telefone;
private String site;
private Double nota;
private Long id;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
public String getSite() {
return site;
}
public void setSite(String site) {
this.site = site;
}
public Double getNota() {
return nota;
}
public void setNota(Double nota) {
this.nota = nota;
}
}
package br.com.caelum.cadastro;
import ...
public class FormularioHelper {
private EditText campoTelefone;
private EditText campoNome;
private EditText campoSite;
private EditText campoEndereco;
private SeekBar campoNota;
private Aluno aluno;
public FormularioHelper(Formularioactivity activity) {
aluno = new Aluno();
campoNome = (EditText)activity.findViewById(R.id.Nome);
campoSite = (EditText)activity.findViewById(R.id.Site);
campoEndereco = (EditText)activity.findViewById(R.id.Endereco);
campoTelefone = (EditText)activity.findViewById(R.id.Telefone);
campoNota = (SeekBar)activity.findViewById(R.id.Nota);
}
public Aluno pegaAlunoDoFormulario () {
String nome = campoNome.getText().toString();
String endereco = campoEndereco.getText().toString();
String site = campoSite.getText().toString();
String telefone = campoTelefone.getText().toString();
int nota = campoNota.getProgress();
aluno.setNome(nome);
aluno.setEndereco(endereco);
aluno.setTelefone(telefone);
aluno.setSite(site);
aluno.setNota(Double.valueOf(nota));
return aluno;
}
}
código do Banco de dados:
package br.com.caelum.cadastro.dao;
import ...
public class AlunoDAO extends SQLiteOpenHelper{
private static final int VERSAO = 1;
private static final String DATABASE = "NomeDoBanco";
private static final String TABELA = "Alunos";
public AlunoDAO(Context ctx) {
super(ctx, DATABASE, null, VERSAO);
}
public void onCreate(SQLiteDatabase database) {
String sql = "CREATE TABLE " + TABELA +
" (id INTEGER PRIMARY KEY AUTOINCREMENT," +
" nome TEXT UNIQUE NOT NULL," +
" site TEXT," +
" endereco TEXT," +
" telefone TEXT," +
" nota REAL" +
");";
database.execSQL(sql);
}
public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) {
String sql = "DROP TABLE IF EXIST" + TABELA + ";";
database.execSQL(sql);
onCreate(database);
}
public void insere(Aluno aluno) {
ContentValues cv = new ContentValues();
cv.put("nome", aluno.getNome());
cv.put("telefone", aluno.getTelefone());
cv.put("endereco", aluno.getEndereco());
cv.put("nota", aluno.getNota());
cv.put("site", aluno.getSite());
getWritableDatabase().insert(TABELA, null, cv);
}
public List<Aluno> getLista() {
String sql="SELECT id,nome FROM " + TABELA + ";";
Cursor c = getReadableDatabase().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")));
alunos.add(aluno);
}
return alunos;
}
}