回收器视图在android中不使用params读取大量凌乱数据
我使用volley从数据源接收数据,问题是如果我在查询中执行某些操作(如添加参数),则recycler视图不起作用。截击有什么问题吗回收器视图在android中不使用params读取大量凌乱数据,android,json,android-volley,Android,Json,Android Volley,我使用volley从数据源接收数据,问题是如果我在查询中执行某些操作(如添加参数),则recycler视图不起作用。截击有什么问题吗 public void getting locations() { String url = "URL REMOVED"; RequestQueue queue = Volley.newRequestQueue(MainActivity.this); // this = context JsonObjectRequest jsonObjRe
public void getting locations() {
String url = "URL REMOVED";
RequestQueue queue = Volley.newRequestQueue(MainActivity.this); // this = context
JsonObjectRequest jsonObjReq = new JsonObjectRequest(
Request.Method.GET, url, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
JSONObject status = null;
try {
JSONObject jObj = new JSONObject(String.valueOf(response));
JSONArray jr = jObj.getJSONArray("products");
for(int i=0;i<jr.length();i++)
{
JSONObject jb1 = jr.getJSONObject(i);
String title = jb1.getString("title");
Log.d("Title",""+title);
String img = jb1.getString("featured_src");
JSONArray a = jb1.getJSONArray("categories");
String category = "";
lstBook.add(new Book(title,"rAJA","Description book",img));
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d("EROOOOOOOOOOOOOOOOOOOOOR", "Error: " + error.getMessage());
}
}) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
HashMap<String, String> headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json; charset=utf-8");
headers.put("User-agent", "My useragent");
return headers;
}
};
jsonObjReq.setRetryPolicy(new DefaultRetryPolicy(5000,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
queue.add(jsonObjReq);
public void获取位置(){
String url=“url已删除”;
RequestQueue=Volley.newRequestQueue(MainActivity.this);//this=context
JsonObjectRequest JSONObjectReq=新的JsonObjectRequest(
Request.Method.GET,url,null,
新的Response.Listener(){
@凌驾
公共void onResponse(JSONObject响应){
JSONObject status=null;
试一试{
JSONObject jObj=新的JSONObject(String.valueOf(response));
jr=jObj.getJSONArray(“产品”);
对于(inti=0;i将myAdapter声明为私有变量,并按如下所述更改代码
在lstBook.Add(新书(标题,“rAJA”,“描述书”,img));
和myrv.setAdapter(myAdapter);
当我尝试添加您提到的参数时,我能够获得数据。错误消息是什么,或者您缺少哪些数据?我无法访问您的logcat。stack是logcat的密码。当我尝试在截取url中添加?page=2或?filter之类的参数时,它只是不加载内容。其原因是因为ley无法读取完整的json数据。屏幕截图logcat没有打印全部内容。这并不意味着它没有加载数据。请尝试在for循环中单独打印标题并进行验证。我可以验证它是否确实打印了所有数据,您能给我一些指导吗?我正在将此数据放入recyclerview中所以,当我提出简单的请求时,它会显示出来,但当我添加参数时,它不会显示出来
for(int i=0;i<jr.length();i++)
{
JSONObject jb1 = jr.getJSONObject(i);
String title = jb1.getString("title");
String img = jb1.getString("featured_src");
JSONArray a = jb1.getJSONArray("categories");
String category = "";
lstBook.add(new Book(title,"rAJA","Description book",img));
myAdapter.notifyDataSetChanged();
}
myAdapter = new RecyclerViewAdapter(this,lstBook);
myrv.setLayoutManager(new GridLayoutManager(this,2));
myrv.setAdapter(myAdapter);
myAdapter.notifyDataSetChanged();