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

i n'a pas pu montrer dans mon fragment android extensible en utilisant volley en mesure d'obtenir la réponse du serveur, mais il affiche l'erreur exception de pointeur nulandroid expandablelistview utilisant volley

je n'ai pas pu montrer dans mon fragment extensible utilisant android volley en mesure d'obtenir la réponse du serveur, mais il affiche l'erreur exception de pointeur nul

merci

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

double possible de [Qu'est-ce qu'un NullPointerException, et comment puis-je résoudre ce problème?] (Https://stackoverflow.com/questions/218384/what-is-a -nullpointerexception-et-comment-faire-je-fix-it) – HaveSpacesuit

Répondre

0

initialize & hashmap déclare en haut

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

ne montrant aucune erreur mais rien ne montre dans mon écran –

+0

ok il fonctionne bien tq –