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

Primeiro aluno cadastrado não aparece na lista

Olá! Sempre que eu cadastro o primeiro aluno, ele não aparece na lista. Então se eu cadastro um segundo aluno, ele aparece sozinho na lista e com o ID 2 (então o primeiro aluno está no banco, só não está sendo exibido).

Segue código:

AlunoDAO - buscaAluno()

public List<Aluno> buscaAlunos() {

        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.setEndereco(c.getString(c.getColumnIndex("endereco")));
            aluno.setTelefone(c.getString(c.getColumnIndex("telefone")));
            aluno.setSite(c.getString(c.getColumnIndex("site")));
            aluno.setNota(c.getDouble(c.getColumnIndex("nota")));

            alunos.add(aluno);

        }
        c.close();

        return alunos;

    }

ListaAlunosActivity - onCreate()

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_lista_alunos);

        AlunoDAO dao = new AlunoDAO(this);
        List<Aluno> alunos = dao.buscaAlunos();
        dao.close();


        ListView listaAlunos = (ListView) findViewById(R.id.lista_alunos);
        ArrayAdapter<Aluno> adapter = new ArrayAdapter <Aluno> (this, android.R.layout.simple_list_item_1, alunos);

        listaAlunos.setAdapter(adapter);

        [......]
4 respostas

Hudson, tudo bem ?

Acredito que o problema seja no seu layout.

Manda para gente esse arquivo : activity_lista_alunos.xml para vermos o que rolou

Opa, cara! Tudo certo.

Código XML:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="br.com.hudxd.agenda.ListaAlunosActivity">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay" />

    </android.support.design.widget.AppBarLayout>

    <include layout="@layout/content_lista_alunos" />

    <ListView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/lista_alunos"
        />

    <Button
        android:id="@+id/novo_aluno"
        android:layout_width="56dp"
        android:layout_height="56dp"
        android:text="+"
        android:textColor="#ffffff"
        android:textSize="40sp"
        android:elevation="6dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_marginBottom="16dp"
        android:layout_marginRight="16dp"
        android:background="@drawable/fundo"
        android:stateListAnimator="@null"
        android:layout_centerVertical="true"
        android:paddingBottom="3dp"

        />

</RelativeLayout>
solução!

Remove essa parte aqui :


    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay" />

    </android.support.design.widget.AppBarLayout>

Vê se funciona.

Abraços

Isso mesmo! \o/ Só que quando eu tirei esse código, a barra do aplicativo sumiu, então eu olhei para o design do XML e o primeiro item da lista estava bem em cima da barra. Então eu arrastei pra baixo e o Android Studio adicionou isso aqui:

<ListView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/lista_alunos"
        android:layout_below="@+id/appBarLayout"
        android:layout_centerHorizontal="true" />

Agora está funcionando certinho. Valeu \o/