我试图通过get_tema方法过滤我的listview项目=某事。
问题是我无法使其工作,如果我喜欢if (poiAtual.getTema().equals("EXAMPLETEMA"))
填充holder.nome等它不会做我想要的,因为它无论如何都会在listview上放一个空白项目。
以下是我的适配器!
任何人都可以提出建议吗? 感谢
private class POIListAdapter extends ArrayAdapter<POI> {
public POIListAdapter() {
super (Lista.this, R.layout.item_listview, POIs);
}
@Override
public View getView(int position, View view, ViewGroup parent) {
ViewHolder holder;
if (view == null) {
view = getLayoutInflater().inflate(R.layout.item_listview, parent, false);
holder = new ViewHolder();
holder.id= (TextView) view.findViewById(R.id.txtID);
holder.nome = (TextView) view.findViewById(R.id.txtNomePOI);
holder.descricao = (TextView) view.findViewById(R.id.txtDescricao);
holder.foto = (ImageView) view.findViewById(R.id.ivFoto);
view.setTag(holder);
}
else {
holder = (ViewHolder) view.getTag();
}
POI poiAtual = POIs.get(position);
//TextView id=(TextView)view.findViewById(R.id.txtID);
holder.id.setText(Integer.toString(poiAtual.get_id()));
//TextView name = (TextView) view.findViewById(R.id.txtNomePOI);
holder.nome.setText(poiAtual.get_nomePOI());
//TextView phone = (TextView) view.findViewById(R.id.txtTema);
// phone.setText(poiAtual.get_tema());
//TextView descricao = (TextView) view.findViewById(R.id.txtDescricao);
holder.descricao.setText(poiAtual.get_descricao());
// ImageView ivFoto = (ImageView) view.findViewById(R.id.ivFoto);
//ivContactImage.setImageURI(poiAtual.get_imagemURI());
int resId = getResources().getIdentifier("lista_"+poiAtual.get_imagemURI(),"drawable",getPackageName());
holder.foto.setImageResource(resId);
//holder.foto.setImageResource(R.drawable.ic_launcher);
return view;
}
}
答案 0 :(得分:0)
一旦你调用了getView就太晚了。 您应该过滤您的数组,然后调用适配器传递过滤后的数据, 否则你会得到空行,因为每个数组元素都会调用getView。
您可以考虑使用可过滤的界面和自定义过滤器来过滤列表视图。