Android 筛选列表视图项
我试图通过get_tema方法=something来过滤我的listview项。 问题是我无法让它工作,如果我喜欢Android 筛选列表视图项,android,listview,android-listview,Android,Listview,Android Listview,我试图通过get_tema方法=something来过滤我的listview项。 问题是我无法让它工作,如果我喜欢if(poiAtual.getTema().equals(“EXAMPLETEMA”))fill The holder.nome等等,它不会做我想做的事情,因为它会在listview上放一个空白项 下面是我的适配器 有人能提出建议吗? 谢谢 私有类POIListAdapter扩展了ArrayAdapter{ 公共POIListAdapter(){ super(Lista.this,R
if(poiAtual.getTema().equals(“EXAMPLETEMA”))
fill The holder.nome等等,它不会做我想做的事情,因为它会在listview上放一个空白项
下面是我的适配器
有人能提出建议吗?
谢谢
私有类POIListAdapter扩展了ArrayAdapter{
公共POIListAdapter(){
super(Lista.this,R.layout.item_listview,poi);
}
@凌驾
公共视图getView(内部位置、视图视图、视图组父视图){
视窗座;
如果(视图==null){
视图=GetLayoutFlater()。充气(R.layout.item_listview,父项,false);
holder=新的ViewHolder();
holder.id=(TextView)view.findViewById(R.id.txtID);
holder.nome=(TextView)view.findViewById(R.id.txtNomePOI);
holder.descripcao=(TextView)view.findViewById(R.id.txtdescripcao);
holder.foto=(ImageView)view.findViewById(R.id.ivFoto);
视图.设置标签(支架);
}
否则{
holder=(ViewHolder)view.getTag();
}
POI poiAtual=POI.get(位置);
//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电话=(TextView)view.findViewById(R.id.txtTema);
//phone.setText(poiAtual.get_tema());
//TextView descripcao=(TextView)view.findViewById(R.id.txtDescriptcao);
holder.descripao.setText(poiAtual.get_descripao());
//ImageView ivFoto=(ImageView)view.findViewById(R.id.ivFoto);
//ivContactImage.setImageURI(poiAtual.get_imagemURI());
int resId=getResources().getIdentifier(“lista_”+poiAtual.get_imagemURI(),“drawable”,getPackageName());
持有者.foto.setImageResource(剩余);
//holder.foto.setImageResource(R.drawable.ic_启动器);
返回视图;
}
}
一旦调用getView,就太晚了。
您应该筛选数组,然后调用传递筛选数据的适配器,
否则,您将得到空行,因为每个数组元素都调用了getView
可以考虑使用可过滤接口和自定义筛选器过滤ListVIEW。
我认为这个答案帮助你意味着你只想显示包含特定字符串的数据?@ PyyUuGupTa就是这样!你能举个例子吗?谢谢您应该创建一个过滤器类来扩展过滤器并重写两个方法。更详细地说,performFiltering是应用过滤器的方法,您应该在那里实现过滤逻辑。适配器必须实现可过滤接口。如果你想知道更多,我有一篇关于它的帖子: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;
}
}