访问onResponse Volley中的数据会严重影响文本:Android

时间:2017-08-30 10:04:52

标签: android json textview android-volley

我有一个应用程序,显示几家公司及其分支机构的列表。我需要显示公司及其分支机构的开放时间。我正在尝试使用volley从服务器获取数据,

String url = context.getString(site_url) + "branch_time.cfc?method=branchtime&branchid=" + bid;


  StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() {

     @Override
     public void onResponse(String response) {

         String MON_O = "";
         String TUE_O = "";
         String WED_O = "";


      try {
     JSONObject jsonObject = new JSONObject(response);
     JSONArray result = jsonObject.getJSONArray("DATA");

    final int numberOfItemsInBranch = result.length();

    for (int i = 0; i < numberOfItemsInBranch; i++) {
    JSONArray companyData = result.optJSONArray(i);

     MON_O = companyData.getString(3);
     TUE_O = companyData.getString(4);
     WED_O = companyData.getString(5);

      }
    } catch (Exception e) {
       e.printStackTrace();
      }
    }
 },
  new Response.ErrorListener() {
       @Override
     public void onErrorResponse(VolleyError error) {
     Toast.makeText(context, "Sorry, couldn't fetch business hours for" + companyTradeName + "Please try again later.", Toast.LENGTH_SHORT).show();

         });

    RequestQueue requestQueue = Volley.newRequestQueue(context);
      requestQueue.add(stringRequest);

我需要使用上面的值将文本设置为文本视图,例如

      timeStatus.setText(MON_O);
      currentStatus.setText(TUE_O);

我面临的问题是当我在响应方法中设置文本视图的文本时,它只显示具有多个分支的公司的最后一个文本视图中的数据。

如果我在requestQueue.add(stringRequest)之后设置数据;我的回复是空的。

我不想在这里使用回调。有没有其他方法来实现这一目标。请帮助我,因为我被困在这几周。 我已经通过了很多链接,

还有其他几个链接,但无法解决我的问题。请帮忙。

修改

来自服务器的我的JSON响应,

{"COLUMNS":  ["TIMEID","BRANCHID","COMPANYID","MON_O","TUE_O","WED_O","THU_O","FRI_O","SAT_O","SUN_O","MON_C","TUE_C","WED_C","THU_C","FRI_C","SAT_C","SUN_C","CREATDATE"],"DATA":[[507,1202,1187,"08:00","08:00","08:00","08:00","08:00","Closed","Closed","16:30","16:30","16:30","16:30","16:30","Closed","Closed","June, 02 2017 13:18:42"]]}

这里的问题是来自服务器的响应正常,但是当我循环数据时,只有最后一个值得到更新。有没有办法在不使用回调的情况下在外部使用响应方法的结果。如果我从响应方法中得到响应值,我认为它可以解决我的问题。

注意:我不能在这里使用listview。我所拥有的是7个文本视图集,在多个分支的情况下循环。

0 个答案:

没有答案