public class Page3 extends Activity {
double latitude;
double longitude;
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.page3);
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(policy);
/* Use the LocationManager class to obtain GPS locations */
LocationManager mlocManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
LocationListener mlocListener = new MyLocationListener();
try {
mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mlocListener);
} catch (SecurityException e) {
e.printStackTrace();
}
}
/* Class My Location Listener */
public class MyLocationListener implements LocationListener {
@Override
public void onLocationChanged(Location loc) {
double a = loc.getLatitude();
latitude=a;
double b = loc.getLongitude();
longitude=b;
String Text = "My current location is: " +
"Latitud = " + loc.getLatitude() +
"Longitud = " + loc.getLongitude();
String x = getCompleteAddressString(a, b);
TextView text = (TextView) findViewById(R.id.tv_address);
text.setText(x);
}
Теперь я хочу, чтобы получить доступ к переменной широте и долготы в другом class.Here являются класс, где мне нужно, чтобы получить доступ к этим variables.Please примечания: Значения latitiude и долгота установлены должным образом в этой функции, так как я получаю свое текущее местоположение (я не вставляю весь код здесь, так как это бессмысленно делать) Вот код, который я написал в классе, где я хочу получить доступ к этим переменнымAcessing переменных одного класса от другого
public class Page2 extends Activity {
/**
* ATTENTION: This was auto-generated to implement the App Indexing API.
* See https://g.co/AppIndexing/AndroidStudio for more information.
*/
private GoogleApiClient client;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.page2);
Button btn = (Button) findViewById(R.id.help);
Page3 a=new Page3();
final double lati=a.latitude;
double longi=a.longitude;
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sendSMS("9740641023", "Help"+lati+"");
}
});
// ATTENTION: This was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
}
Опять же, я не копировал весь код. Этот код работал отлично сам по себе, но теперь при изменении он отправляет сообщение «Help0.0» alth по мнению меня, значение широты должно было измениться на мое текущее местоположение. Пожалуйста, помогите мне.
Подсказка: используя имена переменных, например a или b, возможно, вы сэкономите 5 секунд для ввода; но для каждого читателя требуется минут и минут, чтобы понять, что они означают. Другими словами: используйте ** значащие ** имена. **Всегда**. – GhostCat
Насколько я могу читать из показанных фрагментов, вы создаете новый 'Page3', но тогда его' Object.property' a не готов к использованию, и вы его используете. У вашего 'MyLocationListener' не было времени, чтобы обновить правильную переменную. Либо сохраните значение, используйте Singleton, чтобы удерживать правильное значение, либо используйте его только при его готовности. – Bonatti
@GhostCat Будет держать это в разуме в следующий раз. –