Я пытаюсь создать простое приложение, в котором GPS-координаты будут сохранены и просто отобразятся на экране следующего действия.Android: Как я могу сохранить GPS-координаты и начать новую работу при обнаружении?
До сих пор мне удалось получить координаты для отображения в тосте, поэтому я знаю, что код работает. У меня проблемы с логикой. Я пытаюсь начать новую деятельность (та, которая будет отображать координаты), когда будут найдены долгота и широта.
Может ли кто-нибудь предложить какие-либо предложения относительно того, как я могу сделать что-то подобное?
public class GPSActivity extends Activity{
float longitude = 0;
float latitude = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/* Use the LocationManager class to obtain GPS locations */
LocationManager mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
LocationListener mlocListener = new MyLocationListener();
mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mlocListener);
Intent intent = new Intent(this, Display.class);
Bundle extras = new Bundle();
do{
extras.putFloat("long", longitude);
extras.putFloat("lat", latitude);
}while(longitude == 0);
// if longitude is no longer zero - meaning it is found
// add extras and call activity.
if(longitude != 0){
intent.putExtras(extras);
startActivity(intent);
}} // end activity
/* Class My Location Listener */
public class MyLocationListener implements LocationListener {
@Override
public void onLocationChanged(Location loc) {
longitude = (float) loc.getLatitude();
latitude = (float) loc.getLongitude();
String text = "My current location is: " + "Latitud = " + loc.getLatitude() + "Longitud = " + loc.getLongitude();
Toast.makeText(getApplicationContext(), text, Toast.LENGTH_SHORT).show();
}
@Override
public void onProviderDisabled(String provider){
Toast.makeText(getApplicationContext(), "Gps Disabled", Toast.LENGTH_SHORT).show();
}
@Override
public void onProviderEnabled(String provider) {
Toast.makeText(getApplicationContext(), "Gps Enabled", Toast.LENGTH_SHORT).show();
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras){
}
}} // End GPS activity
привет, я пробовал этот подход, но при сбое приложения при попытке запустить активность при вызове nullpointerexception. – BodhiByte
Да, пример предполагает, что действие, которое вы хотите запустить, - Display.class, и, возможно, это не так, не так ли? – Scalarr
Нет, класс отображения покажет координаты, как они были показаны – BodhiByte