2017-07-27 53 views
0
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.util.HashMap.toString()' on a null object reference 

我没能在我的片段显示Android的可扩展使用凌空 能够得到来自服务器的响应,但它显示错误空指针异常的Android expandablelistview使用凌空

我没能在显示我的使用凌空 能够从服务器获取响应片段Android的扩张,但它显示错误空指针异常

谢谢

public class NotificationFragment extends Fragment { 
     private static String url = "http://www.androidbegin.com/tutorial/jsonparsetutorial.txt"; 
     private ProgressDialog mprocessingdialog; 
     private TextView tv_welcomeuser, tv_recentupdate; 
     private ExpandableListAdapter expandableListAdapter; 
     private ExpandableListView exp_leaseoffer; 
     private List<String> listDataHeader; 
     private View rootView; 
     private HashMap<String, List<String>> listDataChild; 
     String jsonstr; 
     RequestQueue requestQueue; 





     public static NotificationFragment newInstance() { 
      NotificationFrag 

ment fragment = new NotificationFragment(); 
     return fragment; 
    } 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.fragment_notification, container, false); 



     tv_welcomeuser = (TextView) view.findViewById(R.id.tv_welcomeuser); 
     tv_recentupdate = (TextView) view 
       .findViewById(R.id.tv_recentupdate); 

     exp_leaseoffer = (ExpandableListView) view.findViewById(R.id.lvExp); 
     listDataHeader = new ArrayList<String>(); 

     new DownloadJason().execute(); 

     return view; 
    } 
    private class DownloadJason extends AsyncTask<Void, Void, Void> { 

     @Override 
     protected void onPreExecute() { 
      // TODO Auto-generated method stub 
      super.onPreExecute(); 
      mprocessingdialog = new ProgressDialog(getActivity()); 
      mprocessingdialog.setTitle("Please Wait.."); 
      mprocessingdialog.setMessage("Loading"); 
      mprocessingdialog.setIndeterminate(false); 
      mprocessingdialog.show(); 


     } 

     @Override 
     protected Void doInBackground(Void... arg0) { 
      // TODO Auto-generated method stub 

      StringRequest stringRequest = new StringRequest(Request.Method.GET,url, 
        new Response.Listener<String>() { 
         @Override 
         public void onResponse(String response) { 
          Log.d("rlog", response.toString()); 


          jsonstr = response; 


      if (jsonstr != null) { 

       listDataHeader = new ArrayList<String>(); 
       listDataChild = new HashMap<String, List<String>>(); 

       try { 
        JSONObject jobj = new JSONObject(jsonstr); 
        JSONArray jarray = jobj.getJSONArray("worldpopulation"); 
        for (int hk = 0; hk < jarray.length(); hk++) { 
         JSONObject d = jarray.getJSONObject(hk); 
         // Adding Header data 

         listDataHeader.add(d.getString("country")); 
         // Adding child data for lease offer 
         List<String> lease_offer = new ArrayList<String>(); 

         lease_offer.add(d.getString("country") + "'s Rank is : " 
           + d.getString("rank")); 
         lease_offer.add("And Population is "+d.getString("population")); 
         // Header into Child data 
         listDataChild.put(listDataHeader.get(hk), lease_offer); 

        } 
       } catch (JSONException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 

      } 

         } 
        }, new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) { 
        VolleyLog.d("rlog", "Error: " + error.getMessage()); 

       } 
      }); 

      requestQueue = Volley.newRequestQueue(getActivity()); 
      requestQueue.add(stringRequest); 


      return null; 
     } 

     @Override 
     protected void onPostExecute(Void result) { 
      // TODO Auto-generated method stub 
      super.onPostExecute(result); 
      mprocessingdialog.dismiss(); 

      expandableListAdapter = new ExpandableAdapter(
        getActivity(), listDataHeader, listDataChild); 
      Log.i("groups", listDataHeader.toString()); 
      Log.i("details", listDataChild.toString()); 
      exp_leaseoffer.setAdapter(expandableListAdapter); 

      exp_leaseoffer.setOnGroupClickListener(new OnGroupClickListener() { 

       @Override 
       public boolean onGroupClick(ExpandableListView parent, View v, 
              int groupPosition, long id) { 
        // TODO Auto-generated method stub 
        return false; 
       } 

      }); 
      // Listview Group expanded listener 
      exp_leaseoffer 
        .setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() { 

         @Override 
         public void onGroupExpand(int groupPosition) { 

         } 
        }); 
      exp_leaseoffer 
        .setOnGroupCollapseListener(new ExpandableListView.OnGroupCollapseListener() { 

         @Override 
         public void onGroupCollapse(int groupPosition) { 
          Toast.makeText(
            getActivity().getApplicationContext(), 
            listDataHeader.get(groupPosition) 
              + " Collapsed", Toast.LENGTH_SHORT) 
            .show(); 
         } 
        }); 
      exp_leaseoffer.setOnChildClickListener(new ExpandableListView.OnChildClickListener() { 

       @Override 
       public boolean onChildClick(ExpandableListView parent, View v, 
              int groupPosition, int childPosition, long id) { 


        return false; 
       } 
      }); 

     } 
    } 


    } 
+1

可能的复制初始化&申报的HashMap [什么是空指针异常,以及如何解决?(https://stackoverflow.com/questions/218384/what-is-a -nullpointerexception-how-do-i-fix-it) – HaveSpacesuit

回答

0

在顶部

private HashMap<String, List<String>> listDataChild = new HashMap<String, List<String>>(); 
+0

没有显示任何错误,但没有显示在我的屏幕上 –

+0

确定它工作正常tq –