繁体   English   中英

将数据追加到列表

Appending data to list

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我在建议列表中显示来自两个不同API调用的数据,所以我在onQueryTextChange()中调用两个API,因为我从两个不同的api调用中获取响应,所以我使用addAll()追加来自不同api的响应。没有添加并且列表的大小为零。但是如果我使用searchResponses= (List<UserVideo>) response; 然后将数据添加到列表中,但未附加两个不同的响应。我在哪里出错?

     @Override
        public boolean onQueryTextChange(String s)
        {

                if(s.length()>=1) {
                String mStart = "";
              int mCount = 10;

                    String[] columnNames = {"_id", "name", "userImage", "location"};
                    final String[] temp = new String[4];
                    final MatrixCursor cursor = new MatrixCursor(columnNames);

  SearchAPI.getSearchFeed(getApplicationContext(), s, mStart, mCount, mSettingsManager.getInstance().getAccessToken(), new APIResponseListener() {
                    @Override
                    public void onResponse(Object response) {


                        searchResponses.addAll((List<UserVideo>) response);


                        for (UserVideo searchResponse :searchResponses)
                        {searchResponse.setIsVideo(true);
                            temp[0] = Long.toString(id++);
                            temp[1] = searchResponse.getCaption();

                            temp[3] = searchResponse.getLocation();

                            cursor.addRow(temp);
                        }

                        mSearchView.setSuggestionsAdapter(new SearchListAdapter(HomeActivity.this, cursor));

                    }

                    @Override
                    public void onError(VolleyError error) {

                        if (error instanceof NoConnectionError) {

                        }

                    }
                });
              SearchAPI.getSearchUser(getApplicationContext(), s,mSettingsManager.getInstance().getAccessToken(), new APIResponseListener() {
                    @Override
                    public void onResponse(Object response)
                    {

                        searchResponses.addAll((List<UserVideo>) response);

                        for (UserVideo searchResponse :searchResponses) {
                            searchResponse.setIsVideo(false);
                            temp[0] = Long.toString(id++);
                            temp[1] = searchResponse.getUserName2();

                            temp[3] = searchResponse.getName();

                            cursor.addRow(temp);
                        }
                    mSearchView.setSuggestionsAdapter(new SearchListAdapter(HomeActivity.this, cursor));


                }
     @Override
                public void onError(VolleyError error)
                {

                    if (error instanceof NoConnectionError) {

                    }


                }
            });
        }

    return true;
    }

根据DavidJohns的答案进行了更新-

    public boolean onQueryTextChange(String s)
    {

           if(s.length()>=0) {
            String mStart = "";
          int mCount = 10;

                String[] columnNames = {"_id", "name", "userImage", "location"};
                final String[] temp = new String[4];
                final MatrixCursor cursor = new MatrixCursor(columnNames);
               SearchAPI.getSearchFeed(getApplicationContext(), s, mStart, mCount, mSettingsManager.getInstance().getAccessToken(), new APIResponseListener() {
                    @Override
                    public void onResponse(Object response) {


                 searchResponses= (List<UserVideo>) response;


                        for (UserVideo searchResponse :searchResponses)
                        {
                            searchResponse.setIsVideo(true);
                            temp[0] = Long.toString(id++);
                            temp[1] = searchResponse.getCaption();
                               temp[2] =  searchResponse.getUserId();
                            temp[3] = searchResponse.getLocation();


                            cursor.addRow(temp);
                        }

                        mSearchView.setSuggestionsAdapter(new SearchListAdapter(HomeActivity.this, cursor));

                    }

                    @Override
                    public void onError(VolleyError error) {

                        if (error instanceof NoConnectionError) {

                        }

                    }
                });
              SearchAPI.getSearchUser(getApplicationContext(), s,mSettingsManager.getInstance().getAccessToken(), new APIResponseListener() {
                    @Override
                    public void onResponse(Object response)
                    {
                        searchUserResponses= (List<UserVideo>) response;


                        for (UserVideo searchResponse :searchUserResponses) {
                            searchResponse.setIsVideo(false);
                            temp[0] = Long.toString(id++);
                            temp[1] = searchResponse.getUserName2();
                            temp[2] =  searchResponse.getUserId();
                            temp[3] = searchResponse.getName();
                            searchResponses.add(searchResponse);
                            cursor.addRow(temp);
                        }


                        mSearchView.setSuggestionsAdapter(new SearchListAdapter(HomeActivity.this, cursor));


                    }

                    @Override
                    public void onError(VolleyError error)
                    {

                        if (error instanceof NoConnectionError) {

                        }


                    }
                });
            }

        return true;
    }
 @Override
    public boolean onSuggestionClick(int i)
    {



       if((searchResponses!=null)&&(searchResponses.get(i).getIsVideo()))
       {

                UserVideo searchResponse = searchResponses.get(i);
                setSearchVideoToShow(searchResponse);
                switchFragment(HomeActivity.FRAGMENT_VIDEO_SEARCH, false, "Video Details");
       }


         else if((searchResponses!=null)&&(!searchResponses.get(i).getIsVideo()))
       {
                mSingleClickHandle.put(ENABLE_FRAGMENT_SEARCH_VIEW, false);
                setUserIdToShow(searchResponses.get(i).getUserId2());
                closeDrawer();
                switchFragment(HomeActivity.FRAGMENT_PROFILE_VIEW, false, "video");
       }


        return true;
    }
1 个回复

分别调用您的Web服务,并将这些结果放在两个不同的列表中,然后将这些列表值复制到searchResponses中。

如果类型相等,则可以按以下方式合并结果,

for(int i = 0; i < searchFeedList.size() ; i ++)
{
    searchResponses.add(searchFeedList.get(i);
}

int totalSoze = searchFeedList.size() + searchUserList.size();

for(int j = searchFeedList.size(); j < totalSoze.size() ; j ++)
{
    searchResponses.add(searchUserList.get(j);
}
1 追加到数据列表写入CSV

我正在尝试编写一个记录测试的最后三个尝试(分数)的程序。 用户可以在任何时候重新参加考试,因此程序必须确定用户是否存在并附加用户最新分数。 如果用户不存在,则必须在用户第一次尝试的旁边记录用户名。 我设法获得了记录用户第一分的程序/功能,但是如果用户存在,我将努力追加更多尝试。 我也不知 ...

2 将列表元素追加到数据框列

我有这个数据框: 我有这个清单: 有什么方法可以将列表的元素打印到数据框的新列中? 两种结构的顺序相同,我的意思是,GO.ID列作为列表元素进行排序。 我在寻找粘贴bash命令之类的东西。 我尝试过lapply并将列表导出到文件中。 然后使用write.table , ...

2015-04-30 09:55:52 2 2017   r
3 将数据框追加到R中的列表

我刚开始使用R编程,并且几乎没有或完全不了解。 当我尝试将数据帧追加到列表中时。 我有以下代码: 当我尝试以下操作时,数据框将完美添加到列表中: 也许当我编写以下代码时,会将2个数据帧完美地添加到列表中: ...

4 将数据框追加到列表的开头[重复]

这个问题已经在这里有了答案: 在R 5答案 中将列表追加到列表列表 我有一个包含2个向量和1个向量B的列表A。我想将B插入A使得B在第一个位置。 我有这个: 我要这个: 我目前正在这样做: 有没有不使用for循环的更好方法? ...

2016-06-02 08:06:24 1 121   r/ list
5 遍历pandas数据框并追加到列表

我有一个熊猫数据框df 我想将其分解并添加到列表中,以便列表中的每个项目都是4天数据帧的集合 例如 清单[1] 清单[2] 目前,我只能通过以下代码为每个列表添加一天的时间来实现 如上所述,如何将第一天从第4天追加到一个列表中,并将其循环到第二天,再追 ...

6 将列表追加到列表

我有一个数字列表,我想提取N个元素作为列表,并将它们存储在另一个列表中。 例: 我做了以下 为什么我总是三次获得最新名单 当我调用函数getLines(list1, 3) 。 我还尝试消除临时列表,并将元素直接添加到resultList如下所示: 最后一组 ...

7 追加到列表中

如果您尝试运行此函数(例如n = 3),为什么elem不能正确附加到结果上? 它保持打印为新结果列表。 这将通知我的isPal函数。 ...

8 期望追加到列表

如何将$ interface添加到列表$ interfaces中? 存在2到正则表达式中的值,但是我的代码返回: ...

9 将部分结果追加到列表

我正在尝试建立词典列表。 当我调用build_list()我期望返回值为: 但我回来的只是 为什么会这样呢? 我使用分词错误吗? ...

2015-11-05 06:12:27 2 40   python
10 从字典追加到列表

我目前正在开发一个用户可以订购比萨饼的程序。 我在从字典中获取特定值并将其放入列表中的最佳方法遇到了一些问题,我最终可以使用该列表为客户提供最终总数。 我的问题是:我将如何接受用户的输入,将其与“键”匹配并将“值”附加到以后可用于用户最终总数的列表中。 这是我目前拥有的字典: 我写的一个例子 ...

2020-07-21 00:02:38 1 87   python
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM