//Impede a cariação de inumeras viws mantendo uma quantidade e apenas alterando o conteudo para melhor performace View view = convertView; if (view == null) { view = inflater.inflate(R.layout.list_item, parent, false); }
//Impede a cariação de inumeras viws mantendo uma quantidade e apenas alterando o conteudo para melhor performace View view = convertView; if (view == null) { view = inflater.inflate(R.layout.list_item, parent, false); }
Oi Silvânio, tudo bem ?
Você está verificando se o aluno possui foto ?
Disso você poderia tomar uma decisão, se ele tiver coloca a foto dele, caso contrário uma foto default.
Qualquer coisa, estou a disposição !
Abraços :D
Já possui a foto default conforme no tutorial, o que parece é que quando ele reutiliza a view durante a rolagem dos registros e substitui os dados mas não substitui a foto que era de um outro registro.
Silvanio, posta o código inteiro do método getView
da sua classe AlunoAdapter
.
GetView
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//Instanciando o aluno da posição informada
Aluno aluno = alunos.get(position);
//Inflando o XML de Layout da lista para acessar os campos e adicionar os dados
LayoutInflater inflater = LayoutInflater.from(context);
//Impede a cariação de inumeras viws mantendo uma quantidade e apenas alterando o conteudo para melhor performace
View view = convertView;
if (view == null) {
view = inflater.inflate(R.layout.list_item, parent, false);
}
TextView campoNome = (TextView) view.findViewById(R.id.item_nome);
campoNome.setText(aluno.getNome());
TextView campoTelefone = (TextView) view.findViewById(R.id.item_telefone);
campoTelefone.setText(aluno.getTelefone());
ImageView campoFoto = (ImageView) view.findViewById(R.id.item_foto);
String caminhoFoto = aluno.getCaminhoFoto();
if (caminhoFoto != null) {
Bitmap bitmap = BitmapFactory.decodeFile(caminhoFoto);
Bitmap bitmapReduzido = Bitmap.createScaledBitmap(bitmap, 300, 300, true); //Reduz a rezolução do Bitmap e filtra para garantir a qualidade
campoFoto.setImageBitmap(bitmapReduzido);
campoFoto.setScaleType(ImageView.ScaleType.FIT_XY); //Faz com que ImageView ajuste a imagem
}
return view;
}
Oi Silvanio,
Você precisa fazer um else nessa condição :
if (caminhoFoto != null) {
Bitmap bitmap = BitmapFactory.decodeFile(caminhoFoto);
Bitmap bitmapReduzido = Bitmap.createScaledBitmap(bitmap, 300, 300, true); //Reduz a rezolução do Bitmap e filtra para garantir a qualidade
campoFoto.setImageBitmap(bitmapReduzido);
campoFoto.setScaleType(ImageView.ScaleType.FIT_XY); //Faz com que ImageView ajuste a imagem
}
Pois se o caminho for nulo, você deixa pode colocar uma imagem default.
Abraços :)