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

war ich nicht in der Lage in meinem Fragmente zeigen android erweiterbar volley mit Lage Antwort vom Server zu erhalten, aber es zeigt Fehler Null-Zeiger-Ausnahmeandroid expandablelistview mit Volley

i in zeigen, nicht in der Lage war mein Fragment android erweiterbar volley mit Lage Antwort vom Server zu erhalten, aber es zeigt Fehler Null-Zeiger-Ausnahme

danke

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

Mögliche Duplikat [Was für eine Nullpointer ist, und wie kann ich es beheben?] (Https://stackoverflow.com/questions/218384/what-is-a -nullpointerexception-and-how-do-i-fix-it) – HaveSpacesuit

Antwort

0

initialisieren & declare hashmap an der Spitze

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

zeigt keinen Fehler, aber nichts zeigt auf meinem Bildschirm –

+0

ok es funktioniert gut tq –