过滤列表视图项目

Filter listview items

我正在尝试通过 get_tema 方法 = something 来过滤我的列表视图项目。 问题是我无法让它工作,如果我喜欢 if (poiAtual.getTema().equals("EXAMPLETEMA")) 填充 holder.nome 等等,它不会做我想做的,因为它无论如何都会在列表视图上放置一个空白项目。

下面是我的适配器!

谁能给个建议? 谢谢

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;
    }
}

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

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