[RESOLVIDO]ListView retorna apenas 1 nome

4 respostas
kmunga

Bom, estou fazendo um exercicio que consiste em cadastrar novos alunos, porem ao cadastrar um novo aluno a ListView retorna apenas o primeiro contato e não todos os que inseri. Já conferi no Banco de Dados SQLite e o cadastro foi realizado com sucesso e este problema aconteceu mesmo antes, quando usei uma Array de Strings contendo 3 nomes para a ListView.

Segue o codigo

package com.example.droid1;

import java.util.List;
import java.util.zip.Inflater;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.InflateException;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class ListaAlunos extends Activity{
	
	private ListView listaNomes;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.listagem_alunos);
		listaNomes = (ListView) findViewById(R.id.listaAlunos);
	}
	
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// TODO Auto-generated method stub
		MenuInflater inflater=getMenuInflater();
		inflater.inflate(R.menu.listagem_alunos, menu);
		return super.onCreateOptionsMenu(menu);
	}
	
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// TODO Auto-generated method stub
		int itemClicado=item.getItemId();
		switch (itemClicado) {
		case R.id.menu_novoAlunos:
			Intent intent=new Intent(ListaAlunos.this,Formulario.class);
			startActivity(intent);
			break;

		default:
			break;
		}
		return super.onOptionsItemSelected(item);
	}
	
	@Override
	protected void onResume() {
		// TODO Auto-generated method stub
		super.onResume();
		AlunoDAO dao= new AlunoDAO(this);
		List<Aluno> alunos=dao.getLista();
		dao.close();
		
		ArrayAdapter<Aluno> adapter=
				new ArrayAdapter<Aluno>(
						this, android.R.layout.simple_list_item_1,alunos);
		listaNomes.setAdapter(adapter);
	}

}
O XML
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
        
        <ListView 
            android:id="@+id/listaAlunos"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>
        
    </LinearLayout>
    

</ScrollView>

obs: Não vou colar ainda ( a menos que pedido) o restante do codigo, por já ter visto que o problema é na ListView e não nas operações de Banco de Dados.
Obs2: uso o ADT Eclipse v21.1.0-56985.

Obrigado desde já.

4 Respostas

A

Olá
O seu layout está com match_parent, muda para fill

kmunga

A H Gusukuma:
Olá
O seu layout está com match_parent, muda para fill

resolvido, o problema era pq tinha colocado o ListView dentro de uma ScrollLayout e tinha colocado tb o layout_height da listview fill quando deveria ser wrap.

A

Já verificou quanto tem no alunos.size ?

kmunga

o problema era no xml mesmo, muito obrigado

Criado 27 de abril de 2013
Ultima resposta 27 de abr. de 2013
Respostas 4
Participantes 2