-3

サーバーからデータを取得して、アプリケーションに表示しようとしています。 しかし、私は結果をサーバーからnullとして取得しています。結果がnullになり、サーバーからデータを取得できない可能性はありますか?サーバーからデータを取得中にエラーが発生しました。java.lang.NullPointerException:Android

これは、のgetData()関数を呼び出し、RelativeLayoutをクリックすると

、これは私がデータをフェッチしようとしている方法です、

TextView timeStatus; 

public static final String MON_O = "MON_O"; 
public static final String TUE_O = "TUE_O"; 
public static final String WED_O = "WED_O"; 
public static final String THU_O = "THU_O"; 
public static final String FRI_O = "FRI_O"; 
public static final String SAT_O = "SAT_O"; 
public static final String SUN_O = "SUN_O"; 

public static final String MON_C = "MON_C"; 
public static final String TUE_C = "TUE_C"; 
public static final String WED_C = "WED_C"; 
public static final String THU_C = "THU_C"; 
public static final String FRI_C = "FRI_C"; 
public static final String SAT_C = "SAT_C"; 
public static final String SUN_C = "SUN_C"; 

public static final String JSON_ARRAY = "COLUMNS"; 

timeStatus = (TextView) view.findViewById(R.id.time_status); 

{ 
"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": 
[[195,4,4,"09:00","09:00","09:00","09:00","09:00","Closed","Closed","16:30","16:30","16:30","16:30","16:30","Closed","Closed","May, 16 2017 08:16:12"] 
]} 

私のサーバーからのデータであり、

  timeLayout.setOnClickListener(new View.OnClickListener() { 

       @Override 
        public void onClick(View v) { 
        if (timeLayoutCollapse.getVisibility() == View.GONE) { 
         timeLayoutCollapse.setVisibility(View.VISIBLE); 
          getData(); 
         } else { 
          timeLayoutCollapse.setVisibility(View.GONE); 
         } 
        } 
       }); 

であり、JSON応答関数は、

private void getData() { 

    if (dBranchID == 0) { 

     Log.e("no branch id", "sdsfsdf"); 
     return; 
    } 


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

    StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() { 
     @Override 
     public void onResponse(String response) { 
      showJSON(response); 
     } 
    }, 
      new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) { 
        Toast.makeText(context,error.getMessage().toString(),Toast.LENGTH_LONG).show(); 
       } 
      }); 

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



private void showJSON(String response) { 

    String name = ""; 
    String address = ""; 
    String vc = ""; 


    try { 
     JSONObject jsonObject = new JSONObject(response); 
     JSONArray result = jsonObject.getJSONArray(JSON_ARRAY); 
     JSONObject companyData = result.getJSONObject(0); 

     mon = companyData.getString(MON_O); 
     tue = companyData.getString(TUE_O); 
     wed = companyData.getString(WED_O); 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
    timeStatus.setText(mon); 
} 

問題はここにある

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference. 
+3

'timeStatus'はnullです。 –

答えて

0

、と私はエラーを取得しています。 timestatusのヌル値を取得しています。修正してください。

timeStatus.setText(mon); 
+0

なぜ私はtimeStatusのnull値を取得しているのか分かりません。 – devgeek

0

あなたtimestatusのTextViewにはnullである (findviewbyid)timestatusを唱えたり、doinbackgroundでそのメソッドを呼び出すことがあります。 nullポインタ例外を与えるよりも、そのmetodをdoinbackgroundに置いた場合

関連する問題