当前位置: 首页 > 知识库问答 >
问题:

是否可以在数组列表中筛选结果,然后将该列表添加到数组适配器中?

琴俊良
2023-03-14

//我正在从AllShops中的db获取数据
JsonArrayRequest JsonArrayRequest;jsonArrayRequest=new jsonArrayRequest(url,new response.listener(){@override public void onResponse(JSONArray response){

            for (int i = 0; i < response.length(); i++) {
                try {
                    JSONObject jsonObject = response.getJSONObject(i);
                    //allShops is an arraylist
                    allShops.add(jsonObject.getString("name"));
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }

            //user enters text in edittext et_search
            et_search.addTextChangedListener(new TextWatcher() {
                @Override
                public void beforeTextChanged(CharSequence s, int start, int count, int after)
                {


                }

                @Override
                public void onTextChanged(CharSequence cs, int start, int before, int count)
                {

                }

                @Override
                public void afterTextChanged(Editable s) {
                    //here i am adding arraylist to adapter but want it to happen after filtering the arraylist first based on  users input
                    adapter = new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_list_item_1,allShops);
                    (Search.this).adapter.getFilter().filter(s);
                    lv_search.setAdapter(adapter);
                }
            });

共有1个答案

鞠修雅
2023-03-14

我更新了代码的空闲部分:

@Override
                public void onTextChanged(CharSequence cs, int start, int before, int count)
                {
                    if (cs.length()== 0)
                    {
                        adapter = new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_list_item_1,new ArrayList<String>());
                        //(Search.this).adapter.getFilter().filter(cs);
                        lv_search.setAdapter(adapter);
                    }
                    else
                    {
                        List<String> filtered = new ArrayList<String>();
                        for(String x:allShops)
                        {
                            if (x.toLowerCase().contains(cs.toString().toLowerCase()))
                            {
                                filtered.add(x);
                            }
                        }
                        adapter = new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_list_item_1,filtered);
                        lv_search.setAdapter(adapter);
                    }
                }
 类似资料:
  • 在有趣的功能中,当我将列表添加到其他列表时,它正在添加空列表,我可以找到原因有人可以帮助我这个程序是关于查找给定数组的不同组合

  • 我想在Sokoban游戏中保存我的玩家角色的步骤。首先我想用字符的实际位置填充一个int x和y的数组,称为“pos”。然后我想将这个数组添加到数组的ArrayList中,称为“moves”。 一个玩家位置的阵列: ArrayList为所有步骤,玩家在关卡: 如果将“int[]”放在ArrayList的尖括号内,则会出错。 如何将阵列位置添加到ArrayList移动?

  • 我想把一个数组(带有随机整数值)分成大小相等的小块,然后根据数组的值分配元素。例如,如果我有一个大小为9的数组,并且想要将其分成3个块,那么0到3之间的数字被分配到第一个块中,4到6之间的数字被分配到第二个块中,其余的数字被分配到第三个块中。我必须重复单独的块(可以暂时停留)。最后将所有块添加到数组列表中。 这是我的方法,但每件事都是硬编码的。我能动态地做吗?感谢帮助!

  • 我的任务是用hibernate的数据值填充prime faces数据表。我们可以通过这个查询获取表中的所有记录 将从表雇员中获取所有记录,雇员字段有两个字段名称,以及将其转换为列表的Hibernate查询 列表=查询。list();我想将其转换为数组列表,其中包含两个字段name,age和hibernate中的所有对象 然后用 有人能举例说明吗

  • 我试图计算用户购物车中物品的总成本。我的方法是将项目成本和数量存储在Arraylist中,然后乘以该值再相加。例如,这是我的数组列表。我想做2.00*5.00 3.00*6.00 4.00*7.00 5.00*8.00。到目前为止,我所做的是将第一个数组列表中的第一个数字乘以第二个数组列表的每个项目。这不是我想做的,有人能帮我吗。

  • 我有一个类来代表一个玩家的手牌。但是,我(在另一个类中)有一个数组列表,我想在其中表示一堆玩家手。问题是我不知道如何在多手牌的数组列表中将一张牌添加到手牌中。我有一个代表卡牌和一副牌的类,效果很好。我只是试图了解如何将对象添加到数组列表中的对象。谢谢!