为了账号安全,请及时绑定邮箱和手机立即绑定

在4列listview android中过滤数据

在4列listview android中过滤数据

Cats萌萌 2021-05-01 14:30:45
我有一个包含数据库和列表视图的应用程序,用于显示从数据库中获取的数据。列表视图有4列,每一列显示一列数据库。当我从DB方法获取数据时,返回arraylist中的数据。然后我将arraylist拆分为4个arraylist,并将其发送到获得4个arraylist作为输入的自定义适配器。问题是当我在costum适配器中使用filter过滤列中的数据时,我对该列工作良好,但其他列保持不变,因此过滤后的数据的相关数据不正确,也不是该行的相关数据。过滤数据时,有没有办法获取正确的数据集?请帮忙。这是我的自定义适配器。    package javadi60.saber.storeassistant;import android.app.Activity;import android.content.Context;import android.graphics.Typeface;import android.text.Layout;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.Filter;import android.widget.Filterable;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.TextView;import java.util.ArrayList;import java.util.HashMap;import java.util.List;public class CustomAdapter2 extends BaseAdapter implements Filterable {    Context context;    ArrayList<String> lista,listb,listc,listd;    ArrayList<String> listb2;    LayoutInflater inflater;    Typeface tf2;    int a;    public CustomAdapter2(Context aplicationContext, ArrayList<String> lista, ArrayList<String> listb, ArrayList<String> listc, ArrayList<String> listd, Typeface tf2, int a) {        this.context = context;        this.lista = lista;        this.listb = listb;        this.listc = listc;        this.listd = listd;        this.listb2=listb;        this.tf2 = tf2;        this.a = a;        inflater=(LayoutInflater.from(aplicationContext));    }    @Override    public int getCount() {        return listb2.size();    }    @Override    public Object getItem(int i) {        return listb2.get(i);    }    @Override    public long getItemId(int i) {        return 0;    }  正如我所说,过滤器在指定的列中做的很好,但其他列中的数据保持不变,并且行数据为false。请告诉我解决此问题的方法。
查看完整描述

2 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

而不是将UI分为4个列表视图,为什么不使用具有4个水平文本视图(每列1个)的单个Listview,如下所示:


TextView1 | TextView2 | TextView3 | TextView4


您可以为此使用Horizontal LinearLayout


使用单个适配器。这将解决您的过滤问题,还将减少管理4个不同列表所需的工作量。


List data = new ArrayList<Data>();


Class Data {

    String a;

    String b;

    String c;

    String d;

}


查看完整回答
反对 回复 2021-05-12
  • 2 回答
  • 0 关注
  • 118 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信