Coding is only working inside of onClick event of Button
<p>my following coding for getting current address means location is failed if i try to set address to the TextBox but when i put that code inside a onClick event of Button that works properly </p>

<p>This is Coding is Working When it is inside a onCLick event</p>

<pre><code>import java.io.IOException;
import java.util.*;
import android.widget.*;
import android.view.View;
import android.view.View.OnClickListener;
import android.app.Activity;
import android.os.Bundle;
import android.location.*;
import android.content.*;

public class location extends Activity {  

 Button addressButton;
 TextView addressText;
 Location currentLocation;
 double currentLatitude;
 double currentLongitude;
 @Override

 public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.location);  
     addressText = (TextView)findViewById(R.id.addressText);
     addressButton = (Button)findViewById(R.id.addressButton);
     this.addressText.setText("ready");

    LocationManager locationManager = 
        (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);

    LocationListener locationListener = new LocationListener() {
        public void onLocationChanged(Location location) {
            updateLocation(location);
        }
        public void onStatusChanged(
                String provider, int status, Bundle extras) {}
        public void onProviderEnabled(String provider) {}
        public void onProviderDisabled(String provider) {}
    };
    locationManager.requestLocationUpdates(
            LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
    this.addressButton.setOnClickListener(new OnClickListener() {
        public void onClick(View v){
            try{
                Geocoder gcd = new Geocoder(location.this, Locale.getDefault());
                List&lt;Address&gt; addresses = 
                    gcd.getFromLocation(currentLatitude, currentLongitude,100);
                StringBuilder result = new StringBuilder();
                if (addresses.size() &gt; 0) {      
                        Address address =  addresses.get(0);
                        int maxIndex = address.getMaxAddressLineIndex();
                        for (int x = 0; x &lt;= maxIndex; x++ ){
                            result.append(address.getAddressLine(x));
                            //result.append(",");
                        }                    
                    }
                    addressText.setText(result.toString()); 
                    Intent send_add = new Intent();
                    send_add.putExtra("address",result.toString());
            }
            catch(IOException ex){
                addressText.setText(ex.getMessage().toString());
            }
        }
    });
} 
void updateLocation(Location location){
    currentLocation = location;
    currentLatitude = currentLocation.getLatitude();
    currentLongitude = currentLocation.getLongitude();
}}
</code></pre>

<p>This is Coding  not Working here i dont want to use Button when i open this activity it must display direct address means it should be Set to the Textview</p>

<pre><code>public class location extends Activity {  
Button addressButton;
TextView addressText;
Location currentLocation;
double currentLatitude;
double currentLongitude;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.location);  
    addressText = (TextView)findViewById(R.id.addressText);
    addressButton = (Button)findViewById(R.id.addressButton);
    this.addressText.setText("ready");

    LocationManager locationManager = 
        (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);

    LocationListener locationListener = new LocationListener() {
        public void onLocationChanged(Location location) {
            updateLocation(location);
        }
        public void onStatusChanged(
                String provider, int status, Bundle extras) {}
        public void onProviderEnabled(String provider) {}
        public void onProviderDisabled(String provider) {}
    };
    locationManager.requestLocationUpdates(
            LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);

            try{
                Geocoder gcd = new Geocoder(location.this, Locale.getDefault());
                List&lt;Address&gt; addresses = 
                    gcd.getFromLocation(currentLatitude, currentLongitude,100);
                StringBuilder result = new StringBuilder();
                if (addresses.size() &gt; 0) {      
                        Address address =  addresses.get(0);
                        int maxIndex = address.getMaxAddressLineIndex();
                        for (int x = 0; x &lt;= maxIndex; x++ ){
                            result.append(address.getAddressLine(x));
                            //result.append(",");
                        }                    
                    }
                    addressText.setText(result.toString()); 
                    Intent send_add = new Intent();
                    send_add.putExtra("address",result.toString());
            }
            catch(IOException ex){
                addressText.setText(ex.getMessage().toString());
            }
} 
void updateLocation(Location location){
    currentLocation = location;
    currentLatitude = currentLocation.getLatitude();
    currentLongitude = currentLocation.getLongitude();
}}
</code></pre>

<p>Here i just made a small change but not working</p>
