Android 将数据追加到列表中

Android 将数据追加到列表中,android,list,android-listview,Android,List,Android Listview,我在建议列表中显示来自两个不同API调用的数据,所以我在onQueryTextChange()中调用了两个API。因为我从两个不同的API调用中得到响应,所以我使用addAll()来追加来自不同API的响应。但数据并没有被添加,列表的大小为零。但如果我使用searchResponses=(list)response然后数据被添加到列表中,但没有附加两个不同的响应。我哪里出错了 @Override public boolean onQueryTextChange(Stri

我在建议列表中显示来自两个不同API调用的数据,所以我在onQueryTextChange()中调用了两个API。因为我从两个不同的API调用中得到响应,所以我使用addAll()来追加来自不同API的响应。但数据并没有被添加,列表的大小为零。但如果我使用
searchResponses=(list)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;
    }
@覆盖
公共布尔值onQueryTextChange(字符串s)
{
如果(s.长度()>=1){
字符串mStart=“”;
int mCount=10;
String[]columnNames={“\u id”,“name”,“userImage”,“location”};
最终字符串[]临时=新字符串[4];
最终MatrixCursor游标=新MatrixCursor(列名称);
SearchAPI.getSearchFeed(getApplicationContext(),s,mStart,McCount,mSettingsManager.getInstance().getAccessToken(),new-APIResponseListener()){
@凌驾
公共响应(对象响应){
searchResponses.addAll((列表)响应);
for(UserVideo searchResponse:searchResponses)
{searchResponse.setIsVideo(true);
temp[0]=Long.toString(id++);
temp[1]=searchResponse.getCaption();
temp[3]=searchResponse.getLocation();
cursor.addRow(temp);
}
mSearchView.SetSuggestionAdapter(新的SearchListAdapter(HomeActivity.this,游标));
}
@凌驾
公共无效onError(截击错误){
if(错误实例of NoConnectionError){
}
}
});
SearchAPI.getSearchUser(getApplicationContext(),s,mSettingsManager.getInstance().getAccessToken(),新的APIResponseListener(){
@凌驾
公共响应(对象响应)
{
searchResponses.addAll((列表)响应);
for(UserVideo searchResponse:searchResponses){
searchResponse.setIsVideo(false);
temp[0]=Long.toString(id++);
temp[1]=searchResponse.getUserName2();
temp[3]=searchResponse.getName();
cursor.addRow(temp);
}
mSearchView.SetSuggestionAdapter(新的SearchListAdapter(HomeActivity.this,游标));
}
@凌驾
公共无效onError(截击错误)
{
if(错误实例of NoConnectionError){
}
}
});
}
返回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;
    }
public boolean onQueryTextChange(字符串s)
{
如果(s.length()>=0){
字符串mStart=“”;
int mCount=10;
String[]columnNames={“\u id”,“name”,“userImage”,“location”};
最终字符串[]临时=新字符串[4];
最终MatrixCursor游标=新MatrixCursor(列名称);
SearchAPI.getSearchFeed(getApplicationContext(),s,mStart,McCount,mSettingsManager.getInstance().getAccessToken(),new-APIResponseListener()){
@凌驾
公共响应(对象响应){
searchResponses=(列表)响应;
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.SetSuggestionAdapter(新的SearchListAdapter(HomeActivity.this,游标));
}
@凌驾
公共无效onError(截击错误){
if(错误实例of NoConnectionError){
}
}
});
SearchAPI.getSearchUser(getApplicationContext(),s,mSettingsManager.getInstance().getAccessToken(),新的APIResponseListener(){
@凌驾
公共响应(对象响应)
{
searchUserResponses=(列表)响应;
for(UserVideo searchResponse:searchUserResponses){
searchResponse.setIsVideo(false);
temp[0]=Long.toString(id++);
temp[1]=searchResponse.getUserName2();
temp[2]=searchResponse.getUserId();
temp[3]=searchResponse.getName();
searchResponse.add(searchResponse);
cursor.addRow(temp);
}
mSearchView.SetSuggestionAdapter(新的SearchListAdapter(HomeActivity.this,游标));
}
@凌驾
公共无效onError(截击错误)
{
if(错误实例of NoConnectionError){
}
}
});
}
返回true;
}
@凌驾
公共布尔onSuggestionClick(int i)
{
if((searchResponses!=null)&&(searchResponses.get(i).getIsVideo())
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);
}