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

Duvida Aula 5

Faço o código perfeitamente mas quando emulo ele não aparece os "Alunos" que adicionei ao Banco de Dados, Segue código abaixo ListaAlunosActivity

' package com.example.hiago.cadastroaluno;

import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast;

import java.util.List;

import dao.AlunoDAO; import modelo.Aluno;

public class ListaAlunosActivity extends AppCompatActivity {

private ListView listaAlunos;

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.listagem_alunos);

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar);

listaAlunos = (ListView) findViewById(R.id.lista_alunos);

AlunoDAO dao = new AlunoDAO(this); List alunos = dao.getLista();

ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, alunos); listaAlunos.setAdapter(adapter);

listaAlunos.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapter, View view, int posicao, long id) { Toast.makeText(ListaAlunosActivity.this, "A posicao é " + posicao, Toast.LENGTH_SHORT).show(); } });

listaAlunos.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> adapter, View view, int posicao, long id) { Toast.makeText(ListaAlunosActivity.this, "Aluno clicado é " + adapter.getItemAtPosition(posicao), Toast.LENGTH_SHORT).show(); return true; } });

}

@Override public boolean onCreateOptionsMenu(Menu menu) { new MenuInflater(getApplication()).inflate(R.menu.menu_lista_alunos, menu);

return super.onCreateOptionsMenu(menu); }

@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()){ case R.id.novo: Intent irParaFormulario = new Intent(this, FormularioActivity.class); startActivity(irParaFormulario); break; default: break; }

return super.onOptionsItemSelected(item); }

} '

4 respostas

AlunoDAO

package dao;

import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper;

import java.util.ArrayList; import java.util.List;

import modelo.Aluno;

public class AlunoDAO extends SQLiteOpenHelper{

private static final String DATABASE = "NomeDoBanco"; private static final int VERSAO = 2; private static final String TABELA = "Alunos";

public AlunoDAO(Context ctx) { super(ctx, DATABASE, null, VERSAO); }

@Override public void onCreate(SQLiteDatabase database){ String sql = "CREATE TABLE " + TABELA + " (" + "id INTEGER PRIMARY KEY, " + "nome TEXT UNIQUE NOT NULL, " + "telefone TEXT, " +"endereco TEXT, " +"site TEXT, " +"nota REAL, " +"caminhoFoto TEXT" +");";

database.execSQL(sql); }

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

public void insere(Aluno aluno) { ContentValues cv = new ContentValues(); cv.put("nome", aluno.getNome()); cv.put("site", aluno.getSite()); cv.put("endereco", aluno.getEndereco()); cv.put("telefone", aluno.getTelefone()); cv.put("nota", aluno.getNota()); cv.put("caminhFoto", aluno.getCaminhoFoto());

getWritableDatabase().insert(TABELA, null, cv); }

public List getLista() { List alunos = new ArrayList(); String sql ="SELECT * FROM " + TABELA + ";"; Cursor c = getReadableDatabase().rawQuery(sql, null);

while(c.moveToNext()){ Aluno aluno = new Aluno(); aluno.setId(c.getLong(c.getColumnIndex("id"))); aluno.setNome(c.getString(c.getColumnIndex("nome"))); aluno.setSite(c.getString(c.getColumnIndex("site"))); aluno.setEndereco(c.getString(c.getColumnIndex("endereco"))); aluno.setTelefone(c.getString(c.getColumnIndex("telefone"))); aluno.setNota(c.getDouble(c.getColumnIndex("nota"))); aluno.setCaminhoFoto(c.getString(c.getColumnIndex("caminhoFoto")));

alunos.add(aluno); } return alunos; } }

ListaAlunosActivity

package com.example.hiago.cadastroaluno;

import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast;

import java.util.List;

import dao.AlunoDAO; import modelo.Aluno;

public class ListaAlunosActivity extends AppCompatActivity {

private ListView listaAlunos;

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.listagem_alunos);

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar);

listaAlunos = (ListView) findViewById(R.id.lista_alunos);

AlunoDAO dao = new AlunoDAO(this); List alunos = dao.getLista();

ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, alunos); listaAlunos.setAdapter(adapter);

listaAlunos.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapter, View view, int posicao, long id) { Toast.makeText(ListaAlunosActivity.this, "A posicao é " + posicao, Toast.LENGTH_SHORT).show(); } });

listaAlunos.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> adapter, View view, int posicao, long id) { Toast.makeText(ListaAlunosActivity.this, "Aluno clicado é " + adapter.getItemAtPosition(posicao), Toast.LENGTH_SHORT).show(); return true; } });

}

@Override public boolean onCreateOptionsMenu(Menu menu) { new MenuInflater(getApplication()).inflate(R.menu.menu_lista_alunos, menu);

return super.onCreateOptionsMenu(menu); }

@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()){ case R.id.novo: Intent irParaFormulario = new Intent(this, FormularioActivity.class); startActivity(irParaFormulario); break; default: break; }

return super.onOptionsItemSelected(item); }

}

solução!

Olá Juliano!

Na classe AlunoDAO no método insere(), o put do caminhoFoto está com o nome da coluna incorreto, está escrito caminhFoto onde deveria ser caminhoFoto como no código abaixo:

public void insere(Aluno aluno) { 
    ContentValues cv = new ContentValues(); 
    ...
    cv.put("caminhoFoto", aluno.getCaminhoFoto());

    getWritableDatabase().insert(TABELA, null, cv); 
}

Tente fazer essa alteração e veja se funciona.

Abraço!

Incrível, Melhores vídeo aulas e o melhor forum.

Muito obrigado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software