我正在使用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);
}
}
}
答案 0 :(得分:0)
您无法在每个添加项目中创建适配器实例。你必须在循环之前创建一个实例适配器并将其设置为您的回收器。然后在每次向您的数据添加项目后,notifyDatasetChenaged您的适配器。做好一切。 你的parseData如下所示:
rustc