Volley Library数据中的SearchView实现

时间:2016-03-04 05:24:29

标签: android android-volley searchview

我正在使用Volley Library获取数据并在ListView中填充它。它工作正常。但现在我需要实现搜索过滤器。我搞砸了实现它。请帮助我。

此处,我需要将 SEARCH QUERY 发送到服务器。

您的回答更受赞赏。

以下是使用Volley Library从服务器获取数据的代码:

private void getData() {
    final ProgressDialog loading = ProgressDialog.show(context, "Loading Data", "Please wait...", false, false);
    JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Config.DATA_URL, new Response.Listener<JSONArray>() {

        @Override
        public void onResponse(JSONArray response) {
            loading.dismiss();
            parseData(response);
        }
    },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                }
            });
    RequestQueue requestQueue = Volley.newRequestQueue(context);
    requestQueue.add(jsonArrayRequest);
}

private void parseData(JSONArray array) {

    for (int i = 0; i < array.length(); i++) {
        Restaurant_Beam superHero = new Restaurant_Beam();
        JSONObject json = null;
        try {
            json = array.getJSONObject(i);
            superHero.setStr_categoryName(json.getString(Config.CATEGORY_NAME));
            superHero.setStr_productName(json.getString(Config.PRODUCT_NAME));
            superHero.setStrPrice(json.getInt(String.valueOf(Config.PRICE)));
            superHero.setImageUrl(json.getString(Config.TAG_IMAGE_URL));
            superHero.setTAB_NAME(json.getString(Config.TAB_NAME));
            superHero.setLikeCount(json.getInt(Config.LIKE_COUNT));
            superHero.setCommentCount(json.getInt(Config.COMMENT_COUNT));
            superHero.setProduct_id(json.getString(Config.PRODUCT_ID));
            String productId = json.getString(Config.LIKE_COUNT);

            product_Id.add(productId);
        } catch (JSONException e) {
            e.printStackTrace();
        }

        if (superHero.getTAB_NAME().contains(currentTab)) {

            listSuperHeroes.add(superHero);
            adapter = new CardAdapter(listSuperHeroes, context);
            recyclerView.setAdapter(adapter);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您无法在每个添加项目中创建适配器实例。你必须在循环之前创建一个实例适配器并将其设置为您的回收器。然后在每次向您的数据添加项目后,notifyDatasetChenaged您的适配器。做好一切。 你的parseData如下所示:

rustc