В моем приложении я использую Fragments
, чтобы показать некоторые данные о местоположении.Информация о текущем местоположении пользователя выбирается в моем MainActivity
, и Fragment
использует эти координаты для продолжения.Вопрос, который у меня возникает, состоит в том, как я позволю этим двум классам работать вместе: когда я использую их сейчас, Fragment
пытается получить доступ к данным местоположения в MainActivity
, как только они открыты, независимо от того, было ли местоположение уже выбрано илине.Как я могу получить местоположение и уведомить Fragment
после этого, чтобы он знал, что он может продолжить работу со своим кодом и правильно обращаться к координатам?Или вся процедура считается неправильной, и этот вопрос решается по-другому?
Это идея моего MainActivity
:
public class MainActivity extends AppCompatActivity {
public static Double lat;
public static Double lon;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
showLocation();
}
private void showLocation() {
//Grab Location
if (location != null) {
lat = location.getLatitude();
lon = location.getLongitude();
}
}
Это идея моего Fragment
:
public class FragmentA extends Fragment {
public FragmentA() {
// Required empty public constructor
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_a, container, false);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
public void start(){
if (MainActivity.lat != null && MainActivity.lon != null) {
lat = MainActivity.lat;
lon = MainActivity.lon;
//proceed with location data
} else {
}
}
}