2013-07-16 5 views
1

У меня проблема, у меня есть одна кнопка, и когда я нажимаю кнопку -> button.setOnclickListener -> Я получаю текущее местоположение GPS. Но когда я не нажимаю кнопку, и я хочу получить местоположение, когда мое приложение запущено, оно ложно. Я не понимаю. Это код кнопкиКак получить текущее местоположение GPS в Android?

btn.setOnClickListener(new View.OnClickListener() { 

@Override 
public void onClick(View arg0) { 
    // TODO Auto-generated method stub 
    getAdd(); 
} 

});

public void getAdd() 
{ 
    Location currentLocation = mLocationClient.getLastLocation(); 

      Geocoder geocoder = new Geocoder(context, Locale.getDefault()); 
     // Location location = params[0]; 
      List<Address> addresses = null; 
      try { 
       addresses = geocoder.getFromLocation(currentLocation.getLatitude(), 
         currentLocation.getLongitude(), 1); 
      } catch (IOException exception1) { 
       exception1.printStackTrace(); 
      } catch (IllegalArgumentException exception2) { 
       exception2.printStackTrace(); 
      } 
      if (addresses != null && addresses.size() > 0) { 
       Address address = addresses.get(0); 
       String addressText = context.getString(
         R.string.address_output_string, 
         address.getMaxAddressLineIndex() > 0 ? address 
           .getAddressLine(0) : "", 
         address.getLocality(), 
         address.getCountryName()); 
       mAddress.setText(addressText); 
      } 
} 

Это правда. Но когда я вызываю функцию getAdd(), когда мое приложение работает. Textview mAddress.setText (addressText) false. Если я нажму кнопку, это будет true.что я могу сделать для получения моего адреса, когда приложение работает в первый раз?

+2

Выполнить функцию getAdd() в методе OnCreate()? – Razgriz

+0

да, я хочу, чтобы мой текстовый текст setText мой адрес, когда приложение работает –

ответ

0

Если я правильно понял, вы хотите, чтобы адрес отображался при первом запуске приложения, правильно? Один из способов сделать это - вызвать функцию getAdd(), созданную вами в вашей функции onCreate(), таким образом, когда ваше приложение будет запущено, адрес будет отображаться в вашем текстовом элементе.

+0

да, я хочу получить адрес в моей onCreate(), не нужно нажимать на кнопку –

+0

помогите мне :(Я не могу получить адрес в своем OnCreate() –

+0

просто поместите 'getAdd();' in onCreate(), желательно в конце функции. – Razgriz

0
public class MyLocationListener implements LocationListener { 
     public void onLocationChanged(Location location) { 
      mMap.clear(); 
      if(!mProgress.isShowing()) 
      { 
      mProgress.show(); 
      } 
      LatLng lat=new LatLng(location.getLatitude(), location.getLongitude()); 
      mopt.position(lat); 
      mopt.title("Loading...").snippet("").icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN)); 
      mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(lat,14.0f)); 
      myMarker=mMap.addMarker(mopt); 
      myMarker.showInfoWindow(); 

     new ReverseAddress(getBaseContext()).execute(lat); 

     } 
     public void onStatusChanged(String s, int i, Bundle b) {    
     } 
     public void onProviderDisabled(String s) { 
     } 
     public void onProviderEnabled(String s) {    
     } 
    } 

Используйте этот метод, чтобы получить текущее местоположение, также измените текущее местоположение. Чтобы использовать этот код, воспользуйтесь

//  Location Manager 
    locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 

        locationManager.requestLocationUpdates(
            LocationManager.GPS_PROVIDER, 
            MINIMUM_TIME_BETWEEN_UPDATE, 
            MINIMUM_DISTANCECHANGE_FOR_UPDATE, 
            new MyLocationListener() 
        ); 
+0

не работает –

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