Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2017
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.51 KB | None | 0 0
  1. Process: com.example.micha.locationtest, PID: 8302
  2. java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.micha.locationtest/com.example.micha.locationtest.activities.MapsActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'double android.location.Location.getLatitude()' on a null object reference
  3. at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3150)
  4. at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3260)
  5. at android.app.ActivityThread.access$1000(ActivityThread.java:218)
  6. at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1734)
  7. at android.os.Handler.dispatchMessage(Handler.java:102)
  8. at android.os.Looper.loop(Looper.java:145)
  9. at android.app.ActivityThread.main(ActivityThread.java:6934)
  10. at java.lang.reflect.Method.invoke(Native Method)
  11. at java.lang.reflect.Method.invoke(Method.java:372)
  12. at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
  13. at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
  14. Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'double android.location.Location.getLatitude()' on a null object reference
  15. at com.example.micha.locationtest.activities.MapsActivity.onCreate(MapsActivity.java:76)
  16.  
  17. public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
  18.  
  19. private GoogleMap mMap;
  20. private GPSTracker gpsTracker;
  21. private Location location;
  22. private double lat, lng;
  23.  
  24. private RecyclerView mRecyclerView;
  25. private MyAdapter mAdapter;
  26. private LinearLayoutManager linearLayoutManager;
  27.  
  28. private List<WashLocation> washLocations;
  29.  
  30. private Button favoriteWashesButton;
  31. private Button isFavorite;
  32. List<String> spinnerArray = new ArrayList<String>();
  33. Spinner sItems;
  34. String choosenDistance;
  35. private static DataBaseHelper dataBaseHelper;
  36. AlertDialog alert;
  37.  
  38.  
  39. @Override
  40. protected void onCreate(Bundle savedInstanceState) {
  41. super.onCreate(savedInstanceState);
  42. setContentView(R.layout.activity_maps);
  43. LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
  44.  
  45. if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
  46. dataBaseHelper = new DataBaseHelper(getApplicationContext());
  47. gpsTracker = new GPSTracker(getApplicationContext());
  48. location = gpsTracker.getLocation();
  49. lat = location.getLatitude();
  50. lng = location.getLongitude();
  51. // Obtain the SupportMapFragment and get notified when the map is ready to be used.
  52. SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
  53. .findFragmentById(R.id.map);
  54. mapFragment.getMapAsync(this);
  55.  
  56. spinnerArray.add("3000m");
  57. spinnerArray.add("25000m");
  58. spinnerArray.add("50000m");
  59.  
  60. ArrayAdapter<String> adapter = new ArrayAdapter<String>(
  61. this, android.R.layout.simple_spinner_item, spinnerArray);
  62.  
  63. adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  64. sItems = (Spinner) findViewById(R.id.spinner);
  65. sItems.setAdapter(adapter);
  66. choosenDistance = sItems.getSelectedItem().toString();
  67.  
  68. StringBuilder sb = new StringBuilder(choosenDistance);
  69. choosenDistance = sb.deleteCharAt(sb.indexOf("m")).toString();
  70.  
  71.  
  72. //washLocations = dataBaseHelper.getWashLocation();
  73. washLocations = new ArrayList<>();
  74. mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);
  75. mAdapter = new MyAdapter(washLocations, this);
  76. mRecyclerView.setAdapter(mAdapter);
  77. mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
  78.  
  79. List<WashLocation> washLocation = dataBaseHelper.getWashLocation();
  80. List<WashLocation> favouriteWashLocation = dataBaseHelper.getFavouriteWashLocation();
  81. List<WashLocation> favouriteWashLocation1 = dataBaseHelper.getFavouriteWashLocation();
  82.  
  83.  
  84. favoriteWashesButton = (Button) findViewById(R.id.favoriteWashes);
  85. favoriteWashesButton.setOnClickListener(new View.OnClickListener() {
  86. @Override
  87. public void onClick(View v) {
  88. Intent intent = new Intent(MapsActivity.this, FavWashActivity.class);
  89. startActivity(intent);
  90. }
  91. });
  92. } else {
  93. showGPSDisabledAlertToUser();
  94. }
  95.  
  96.  
  97. }
  98.  
  99.  
  100. private void showGPSDisabledAlertToUser() {
  101. AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
  102. alertDialogBuilder.setMessage("GPS is disabled in your device. Would you like to enable it?")
  103. .setCancelable(false)
  104. .setPositiveButton("Goto Settings Page To Enable GPS",
  105. new DialogInterface.OnClickListener() {
  106. public void onClick(DialogInterface dialog, int id) {
  107. Intent callGPSSettingIntent = new Intent(
  108. android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
  109. startActivity(callGPSSettingIntent);
  110. dialog.cancel();
  111. }
  112. });
  113. alertDialogBuilder.setNegativeButton("Cancel",
  114. new DialogInterface.OnClickListener() {
  115. public void onClick(DialogInterface dialog, int id) {
  116. dialog.cancel();
  117. }
  118. });
  119. alert = alertDialogBuilder.create();
  120. alert.show();
  121. }
  122.  
  123. Location washL;
  124. LatLng washLocation;
  125.  
  126. @Override
  127. public void onMapReady(final GoogleMap googleMap) {
  128. mMap = googleMap;
  129. sItems.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
  130.  
  131. @Override
  132. public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
  133. float v = myL.distanceTo(washL);
  134. if ((myL.distanceTo(washL)) <= Float.parseFloat(choosenDistance)) {
  135. googleMap.addMarker(new MarkerOptions().position(washLocation).title(" is here"));
  136. } else {
  137. Toast.makeText(getApplicationContext(), "W tym zasięgu nie ma żadnych myjń", Toast.LENGTH_SHORT).show();
  138. }
  139. }
  140.  
  141. @Override
  142. public void onNothingSelected(AdapterView<?> parent) {
  143. }
  144. });*//*
  145.  
  146. }
  147. googleMap.moveCamera(CameraUpdateFactory.newLatLng(myLocation));
  148. googleMap.animateCamera(CameraUpdateFactory.zoomTo(14), 2000, null);
  149. googleMap.addMarker(new MarkerOptions().position(washLocation).title("I'm here"));*/
  150.  
  151.  
  152. sItems.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
  153.  
  154. @Override
  155. public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
  156. LatLng myLocation = new LatLng(lat, lng);
  157. String latitude = String.valueOf(myLocation.latitude);
  158. String longitude = String.valueOf(myLocation.longitude);
  159.  
  160. StringBuilder sb = new StringBuilder(sItems.getSelectedItem().toString());
  161. String distance = sb.deleteCharAt(sb.indexOf("m")).toString();
  162.  
  163. String radius = distance; // 20 Kilometer
  164. List<WashLocation> washLocationList = new ArrayList<>();
  165. List<WashLocation> favouriteWashLocation = dataBaseHelper.getFavouriteWashLocation();
  166. List<WashLocation> washLocation = dataBaseHelper.getWashLocation();
  167.  
  168. MyAsyncTask myAsyncTask = new MyAsyncTask();
  169.  
  170. try {
  171. JSONObject jsonObject = myAsyncTask.execute(latitude, longitude, radius).get();
  172. String lat;
  173. String lng;
  174. String name = "";
  175. String city = "";
  176. String placeId = "";
  177.  
  178. if (jsonObject.has("results")) {
  179. JSONArray jsonArray = jsonObject.getJSONArray("results");
  180. for (int n = 0; n < jsonArray.length(); n++) {
  181. JSONObject jsonObject1 = jsonArray.getJSONObject(n);
  182. lat = jsonObject1.getJSONObject("geometry").getJSONObject("location").get("lat").toString();
  183. lng = jsonObject1.getJSONObject("geometry").getJSONObject("location").get("lng").toString();
  184.  
  185. JSONObject oName = jsonArray.getJSONObject(n);
  186. if (oName.has("name")) {
  187. name = oName.getString("name");
  188. }
  189.  
  190. JSONObject oVicinity = jsonArray.getJSONObject(n);
  191. if (oVicinity.has("vicinity")) {
  192. city = oVicinity.getString("vicinity");
  193. }
  194. JSONObject oPlaceId = jsonArray.getJSONObject(n);
  195. if (oPlaceId.has("place_id")) {
  196. placeId = oPlaceId.getString("place_id");
  197. }
  198. WashLocation w = new WashLocation(name, lat, lng, 0, getCity(city), null, placeId);
  199. washLocations.add(w);
  200. googleMap.addMarker(new MarkerOptions().position(new LatLng(Double.parseDouble(w.getLat()), Double.parseDouble(w.getLng()))).title(w.getWashName()));
  201. googleMap.moveCamera(CameraUpdateFactory.newLatLng(myLocation));
  202. googleMap.animateCamera(CameraUpdateFactory.zoomTo(11), 2000, null);
  203. mAdapter.notifyDataSetChanged();
  204. }
  205. }
  206. } catch (InterruptedException e) {
  207. e.printStackTrace();
  208. } catch (ExecutionException e) {
  209. e.printStackTrace();
  210. } catch (JSONException e) {
  211. e.printStackTrace();
  212. }
  213. }
  214.  
  215. @Override
  216. public void onNothingSelected(AdapterView<?> parent) {
  217. }
  218.  
  219.  
  220. });
  221.  
  222.  
  223. }
  224.  
  225. public MyAdapter getmAdapter() {
  226. return mAdapter;
  227. }
  228.  
  229. private String getCity(String s) {
  230. int i = s.lastIndexOf(',');
  231. return s.substring(i, s.length());
  232. }
  233.  
  234.  
  235. @Override
  236. protected void onDestroy() {
  237. super.onDestroy();
  238. if(alert != null) { alert.dismiss(); }
  239. gpsTracker = new GPSTracker(getApplicationContext());
  240. }
  241. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement