2014-12-15 2 views
0
public void drawMarker(ArrayList<Datamodel> arrModel) { 
    if(map!=null) 
    { 

    String lat = ""; 
    String lng = ""; 

    SharedPreferences prefs = getActivity().getSharedPreferences("Value", 
      Context.MODE_PRIVATE); 

    locationEnabledisablevalue = prefs.getString("GpsEnableValue", "1"); 

    if (!locationEnabledisablevalue.equals("1")) { 
     map.clear(); 
     return; 
    } 

    for (int i = 0; i < arrModel.size(); i++) { 
     // Drawing marker on the map 
     Datamodel datamodel = arrModel.get(i); 

     // Getting the latitude of the i-th location 
     lat = datamodel.lat; 

     // Getting the longitude of the i-th location 
     lng = datamodel.lon; 

     LatLng point = null; 
     if (lat != "" && lng != "") { 
      point = new LatLng(Double.parseDouble(lat), 
        Double.parseDouble(lng)); 
     } 
     // Creating an instance of MarkerOptions 
     MarkerOptions markerOptions = new MarkerOptions(); 

     // Setting latitude and longitude for the marker 
     markerOptions.position(point); 
     markerOptions.title(datamodel.contactName); 

     if (datamodel.id 
       .equals(((HomeActivity) getActivity()).NotifcationRecciverid)) { 

      String ContactLat = ""; 
      String ContactLng = ""; 

      String Notificationlat = ((HomeActivity) getActivity()).notifcationlat; 
      String Notificationlng = ((HomeActivity) getActivity()).notifcationlng; 
      String Notifcationreccvierid = ((HomeActivity) getActivity()).NotifcationRecciverid; 

      try { 
       DataBaseManager db = new DataBaseManager(getActivity()); 
       Cursor cursor = db.fetchContactInfo(Notifcationreccvierid); 

       if (cursor != null && cursor.moveToFirst()) { 
        ContactLat = cursor 
          .getString(cursor 
            .getColumnIndex(DataProviderConstants.CONTACT_LAT_COLUMN)); 

        ContactLng = cursor 
          .getString(cursor 
            .getColumnIndex(DataProviderConstants.CONTACT_LON_COLUMN)); 

        cursor.close(); 
       } 
      } catch (NullPointerException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

      float distance = AdapterHome.findDistance(
        Double.parseDouble(Notificationlat), 
        Double.parseDouble(Notificationlng), 
        Double.parseDouble(ContactLat), 
        Double.parseDouble(ContactLng)); 
      String time = ((HomeActivity) getActivity()).NotifcationDatetime; 
      markerOptions 
        .snippet(((HomeActivity) getActivity()).nOtifcationMessge 
          + " " + Functions.curentdatetimeprint(time)); 

      marker = map.addMarker(markerOptions); 
      LatLng myPoint = new LatLng(Double.parseDouble(ContactLat), 
        Double.parseDouble(ContactLng)); 
      // // Move the camera instantly to hamburg with a zoom of 15. 
      map.moveCamera(CameraUpdateFactory.newLatLngZoom(myPoint, 15)); 
      // 
      // // Zoom in, animating the camera. 
      map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null); 
      // if (distance < 250) { 
      marker.showInfoWindow(); 
      // } 
      // } 

     } else { 
      markerOptions.snippet(datamodel.phoneNumber); 
      map.addMarker(markerOptions); 

     } 
    } 
    } 

вот мой маркер отображения кода на карте Google. в public void onResume() метод i m вызывает этот drawMarker (arrModel); но иногда применение сбой и показывает ошибку LogCat вопрос на линииNullPointerException на карте Google map loading

.SharedPreferences prefs = getActivity().getSharedPreferences("Value", 
       Context.MODE_PRIVATE); 
     locationEnabledisablevalue = prefs.getString("GpsEnableValue", "1"); 


LogCat: -

12-15 10:29:02.494: E/AndroidRuntime(16303): FATAL EXCEPTION: main 
    12-15 10:29:02.494: E/AndroidRuntime(16303): java.lang.NullPointerException 
    12-15 10:29:02.494: E/AndroidRuntime(16303): at com.locii.fragment.FragHome.drawMarker(FragHome.java:347) 
    12-15 10:29:02.494: E/AndroidRuntime(16303): at com.lociiapp.HomeActivity$UpdateUserLocation.onPostExecute(HomeActivity.java:530) 
    12-15 10:29:02.494: E/AndroidRuntime(16303): at com.lociiapp.HomeActivity$UpdateUserLocation.onPostExecute(HomeActivity.java:1) 
    12-15 10:29:02.494: E/AndroidRuntime(16303): at android.os.AsyncTask.finish(AsyncTask.java:631) 
    12-15 10:29:02.494: E/AndroidRuntime(16303): at android.os.AsyncTask.access$600(AsyncTask.java:177) 
    12-15 10:29:02.494: E/AndroidRuntime(16303): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644) 
    12-15 10:29:02.494: E/AndroidRuntime(16303): at android.os.Handler.dispatchMessage(Handler.java:99) 
    12-15 10:29:02.494: E/AndroidRuntime(16303): at android.os.Looper.loop(Looper.java:137) 
    12-15 10:29:02.494: E/AndroidRuntime(16303): at android.app.ActivityThread.main(ActivityThread.java:5136) 
    12-15 10:29:02.494: E/AndroidRuntime(16303): at java.lang.reflect.Method.invokeNative(Native Method) 
    12-15 10:29:02.494: E/AndroidRuntime(16303): at java.lang.reflect.Method.invoke(Method.java:525) 
    12-15 10:29:02.494: E/AndroidRuntime(16303): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 
    12-15 10:29:02.494: E/AndroidRuntime(16303): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
    12-15 10:29:02.494: E/AndroidRuntime(16303): at dalvik.system.NativeStart.main(Native Method) 

Скажите, пожалуйста, как решить эту проблему я не могу установить Null Pointer исключение.

+1

Показать строку: FragHome.java:347 –

+0

общественности недействительным drawMarker (ArrayList arrModel) этот метод является 347 номер вкладыша – Edge

+0

который ** заявление ** находится в строке 347 ?, она не может быть сигнатурой метода –

ответ

0

Это, вероятно, означает, что ваш вызов метода

getActivity().getSharedPreferences("Value", Context.MODE_PRIVATE); 

вернулся null, т.е. prefs является null. В следующем заявлении вы вызываете prefs.getString, который выдает NullPointerException.

Узнайте, почему он вернул null. Я предполагаю, что имя вашего файла настроек (если оно вообще существует) не Value.

Смотрите эту ссылку для информации о том, как использовать этот метод: http://developer.android.com/reference/android/content/Context.html#getSharedPreferences%28java.lang.String,%20int%29

Смежные вопросы