伙计们,我有一个大问题,我一个人解决不了。我有一个名为JSONArrayRequest的应用程序来填充一个列表,它可以正常工作。但是,当我单击列表中的一个项时,它会带我到另一个活动,当我试图从新的Actitivies适配器类调用JSONArrayRequest时,调用会被跳过,就像它忽略了调用一样。
请参阅所附代码:
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;
}sendJSONRequest调用
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;
}当我尝试调试我的代码并且游标位于JSONArrayRequest行时,它会直接转到下一行:
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();
}在调用ServiceAdapter类的新实例之后,我将添加一个断点,并且在调用的构造函数上,我希望用从JSONArrayrequest返回的数据填充List对象。该活动在视图中填充一个RecycleView。
我不明白为什么它在我的第一次活动中有效,但是在新的调用中它被省略了。
请帮帮忙
谢谢
发布于 2015-05-12 19:07:02
找到了解决办法:
https://stackoverflow.com/questions/30157782
复制相似问题