过滤listview项目

时间:2015-04-09 08:27:28

标签: android listview android-listview

我试图通过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;
    }
}

1 个答案:

答案 0 :(得分:0)

一旦你调用了getView就太晚了。 您应该过滤您的数组,然后调用适配器传递过滤后的数据, 否则你会得到空行,因为每个数组元素都会调用getView。

您可以考虑使用可过滤的界面和自定义过滤器来过滤列表视图。