Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Process: com.example.micha.locationtest, PID: 8302
- 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
- at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3150)
- at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3260)
- at android.app.ActivityThread.access$1000(ActivityThread.java:218)
- at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1734)
- at android.os.Handler.dispatchMessage(Handler.java:102)
- at android.os.Looper.loop(Looper.java:145)
- at android.app.ActivityThread.main(ActivityThread.java:6934)
- at java.lang.reflect.Method.invoke(Native Method)
- at java.lang.reflect.Method.invoke(Method.java:372)
- at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
- at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
- Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'double android.location.Location.getLatitude()' on a null object reference
- at com.example.micha.locationtest.activities.MapsActivity.onCreate(MapsActivity.java:76)
- public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
- private GoogleMap mMap;
- private GPSTracker gpsTracker;
- private Location location;
- private double lat, lng;
- private RecyclerView mRecyclerView;
- private MyAdapter mAdapter;
- private LinearLayoutManager linearLayoutManager;
- private List<WashLocation> washLocations;
- private Button favoriteWashesButton;
- private Button isFavorite;
- List<String> spinnerArray = new ArrayList<String>();
- Spinner sItems;
- String choosenDistance;
- private static DataBaseHelper dataBaseHelper;
- AlertDialog alert;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_maps);
- LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
- if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
- dataBaseHelper = new DataBaseHelper(getApplicationContext());
- gpsTracker = new GPSTracker(getApplicationContext());
- location = gpsTracker.getLocation();
- lat = location.getLatitude();
- lng = location.getLongitude();
- // Obtain the SupportMapFragment and get notified when the map is ready to be used.
- SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
- .findFragmentById(R.id.map);
- mapFragment.getMapAsync(this);
- spinnerArray.add("3000m");
- spinnerArray.add("25000m");
- spinnerArray.add("50000m");
- ArrayAdapter<String> adapter = new ArrayAdapter<String>(
- this, android.R.layout.simple_spinner_item, spinnerArray);
- adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
- sItems = (Spinner) findViewById(R.id.spinner);
- sItems.setAdapter(adapter);
- choosenDistance = sItems.getSelectedItem().toString();
- StringBuilder sb = new StringBuilder(choosenDistance);
- choosenDistance = sb.deleteCharAt(sb.indexOf("m")).toString();
- //washLocations = dataBaseHelper.getWashLocation();
- washLocations = new ArrayList<>();
- mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);
- mAdapter = new MyAdapter(washLocations, this);
- mRecyclerView.setAdapter(mAdapter);
- mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
- List<WashLocation> washLocation = dataBaseHelper.getWashLocation();
- List<WashLocation> favouriteWashLocation = dataBaseHelper.getFavouriteWashLocation();
- List<WashLocation> favouriteWashLocation1 = dataBaseHelper.getFavouriteWashLocation();
- favoriteWashesButton = (Button) findViewById(R.id.favoriteWashes);
- favoriteWashesButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent intent = new Intent(MapsActivity.this, FavWashActivity.class);
- startActivity(intent);
- }
- });
- } else {
- showGPSDisabledAlertToUser();
- }
- }
- private void showGPSDisabledAlertToUser() {
- AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
- alertDialogBuilder.setMessage("GPS is disabled in your device. Would you like to enable it?")
- .setCancelable(false)
- .setPositiveButton("Goto Settings Page To Enable GPS",
- new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
- Intent callGPSSettingIntent = new Intent(
- android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
- startActivity(callGPSSettingIntent);
- dialog.cancel();
- }
- });
- alertDialogBuilder.setNegativeButton("Cancel",
- new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
- dialog.cancel();
- }
- });
- alert = alertDialogBuilder.create();
- alert.show();
- }
- Location washL;
- LatLng washLocation;
- @Override
- public void onMapReady(final GoogleMap googleMap) {
- mMap = googleMap;
- sItems.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
- @Override
- public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
- float v = myL.distanceTo(washL);
- if ((myL.distanceTo(washL)) <= Float.parseFloat(choosenDistance)) {
- googleMap.addMarker(new MarkerOptions().position(washLocation).title(" is here"));
- } else {
- Toast.makeText(getApplicationContext(), "W tym zasięgu nie ma żadnych myjń", Toast.LENGTH_SHORT).show();
- }
- }
- @Override
- public void onNothingSelected(AdapterView<?> parent) {
- }
- });*//*
- }
- googleMap.moveCamera(CameraUpdateFactory.newLatLng(myLocation));
- googleMap.animateCamera(CameraUpdateFactory.zoomTo(14), 2000, null);
- googleMap.addMarker(new MarkerOptions().position(washLocation).title("I'm here"));*/
- sItems.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
- @Override
- public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
- LatLng myLocation = new LatLng(lat, lng);
- String latitude = String.valueOf(myLocation.latitude);
- String longitude = String.valueOf(myLocation.longitude);
- StringBuilder sb = new StringBuilder(sItems.getSelectedItem().toString());
- String distance = sb.deleteCharAt(sb.indexOf("m")).toString();
- String radius = distance; // 20 Kilometer
- List<WashLocation> washLocationList = new ArrayList<>();
- List<WashLocation> favouriteWashLocation = dataBaseHelper.getFavouriteWashLocation();
- List<WashLocation> washLocation = dataBaseHelper.getWashLocation();
- MyAsyncTask myAsyncTask = new MyAsyncTask();
- try {
- JSONObject jsonObject = myAsyncTask.execute(latitude, longitude, radius).get();
- String lat;
- String lng;
- String name = "";
- String city = "";
- String placeId = "";
- if (jsonObject.has("results")) {
- JSONArray jsonArray = jsonObject.getJSONArray("results");
- for (int n = 0; n < jsonArray.length(); n++) {
- JSONObject jsonObject1 = jsonArray.getJSONObject(n);
- lat = jsonObject1.getJSONObject("geometry").getJSONObject("location").get("lat").toString();
- lng = jsonObject1.getJSONObject("geometry").getJSONObject("location").get("lng").toString();
- JSONObject oName = jsonArray.getJSONObject(n);
- if (oName.has("name")) {
- name = oName.getString("name");
- }
- JSONObject oVicinity = jsonArray.getJSONObject(n);
- if (oVicinity.has("vicinity")) {
- city = oVicinity.getString("vicinity");
- }
- JSONObject oPlaceId = jsonArray.getJSONObject(n);
- if (oPlaceId.has("place_id")) {
- placeId = oPlaceId.getString("place_id");
- }
- WashLocation w = new WashLocation(name, lat, lng, 0, getCity(city), null, placeId);
- washLocations.add(w);
- googleMap.addMarker(new MarkerOptions().position(new LatLng(Double.parseDouble(w.getLat()), Double.parseDouble(w.getLng()))).title(w.getWashName()));
- googleMap.moveCamera(CameraUpdateFactory.newLatLng(myLocation));
- googleMap.animateCamera(CameraUpdateFactory.zoomTo(11), 2000, null);
- mAdapter.notifyDataSetChanged();
- }
- }
- } catch (InterruptedException e) {
- e.printStackTrace();
- } catch (ExecutionException e) {
- e.printStackTrace();
- } catch (JSONException e) {
- e.printStackTrace();
- }
- }
- @Override
- public void onNothingSelected(AdapterView<?> parent) {
- }
- });
- }
- public MyAdapter getmAdapter() {
- return mAdapter;
- }
- private String getCity(String s) {
- int i = s.lastIndexOf(',');
- return s.substring(i, s.length());
- }
- @Override
- protected void onDestroy() {
- super.onDestroy();
- if(alert != null) { alert.dismiss(); }
- gpsTracker = new GPSTracker(getApplicationContext());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement