Android: Как я могу сохранить GPS-координаты и начать новую деятельность, когда найден? - PullRequest
1 голос
/ 02 февраля 2012

Я пытаюсь создать простое приложение, в котором будут храниться координаты 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

1 Ответ

1 голос
/ 02 февраля 2012

Не уверен, почему вы поместили этот раздел в onCreate (), но если вы переместите его в onLocationChanged (), он должен работать.

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);

    }

    /* 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();

        Intent intent = new Intent(GPSActivity.this, Display.class);
        Bundle extras = new Bundle();        

        extras.putFloat("long", longitude);
        extras.putFloat("lat", latitude);        

        intent.putExtras(extras);
        startActivity(intent);       

    }        
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...