Android 多个JSONArrayRequests
伙计们,我有一个大问题,我看不到自己能解决。 我有一个我称之为JSONArrayRequest的应用程序来填充列表,它运行良好。但是,当我单击列表中的某个项目时,它会将我带到另一个活动,当我尝试从新Activities的适配器类调用JSONArrayRequest时,调用会被跳过,就像忽略调用一样 请参见所附代码:Android 多个JSONArrayRequests,android,json,Android,Json,伙计们,我有一个大问题,我看不到自己能解决。 我有一个我称之为JSONArrayRequest的应用程序来填充列表,它运行良好。但是,当我单击列表中的某个项目时,它会将我带到另一个活动,当我尝试从新Activities的适配器类调用JSONArrayRequest时,调用会被跳过,就像忽略调用一样 请参见所附代码: ServiceProviderAdapter.Java public ServiceProviderAdapter(int rowLayout, Context context)
ServiceProviderAdapter.Java
public ServiceProviderAdapter(int rowLayout, Context context) {
List<ServiceProvider> DetailsItems = new ArrayList<ServiceProvider>();
sendJSONRequest();
//LyInflater = LayoutInflater.from(context);
this.rowLayout = rowLayout;
this.mContext = context;
}
在调用ServiceAdapter类的新实例之后,我添加了一个断点,在调用的构造函数上,我想用JSONArrayrequest返回的数据填充我的List对象。该活动正在视图中填充RecycleView
我不明白为什么它在我的第一个活动中起作用,但在新的通话中它被省略了
请帮帮忙
谢谢找到了解决方案:
您是否尝试在回调方法onResponse和onErrorResponse中放置断点以查看是否执行了它?如果可能的话,也可以发布addToRequestQueue方法。我在回调中添加了断点,但光标甚至没有进入调用内部。addToRequestQueue是使用Volley库的AppController.java调用。请尝试清除项目,有时调试器会疯狂地停止工作…快速提问,我需要一些帮助来创建recycleview对象,请参阅上面的代码各位,我自己还没能解决这个问题。我甚至用一个JSONArrayRequest调用创建了一个新项目,但它不起作用。你能举个例子吗?因为同步是非常扩展的
private void sendJSONRequest() {
//List<ServiceProvider> serviceProviderList=new ArrayList<ServiceProvider>();
JsonArrayRequest dq;
//RequestQueue queue = Volley.newRequestQueue(mContext);
dq= new JsonArrayRequest(url, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray jsonArray) {
serviceProviderList = parseJSONResponse(jsonArray);
setDetailsItems(serviceProviderList);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
VolleyLog.d("E", "Error: " + volleyError.getMessage());
}
});
AppController.getInstance().addToRequestQueue(dq,"DetailJSONTag");
}
public <T> void addToRequestQueue(Request<T> req) {
req.setTag(TAG);
getRequestQueue().add(req);
}
public RequestQueue getRequestQueue() {
if (mRequestQueue == null) {
mRequestQueue = Volley.newRequestQueue(getApplicationContext());
}
return mRequestQueue;
}
AppController.getInstance().addToRequestQueue(dq,"DetailJSONTag");
cardDetailActivity.Java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.card_list);
//CardView cardView= (CardView) findViewById(R.id.card_view);
RecyclerView recList = (RecyclerView) findViewById(R.id.cardList);
recList.setHasFixedSize(true);
LinearLayoutManager llm = new LinearLayoutManager(this);
llm.setOrientation(LinearLayoutManager.VERTICAL);
recList.setLayoutManager(llm);
adapter=new ServiceProviderAdapter(R.layout.card_user_details,this);
recList.setAdapter(adapter);
pDialog = new ProgressDialog(this);
if (llm.getItemCount()==0)
{
// Showing progress dialog before making http request
pDialog.setMessage("Loading...");
pDialog.show();
}else{
hidePDialog();
}