У меня есть карта Google во фрагменте для рисования многоугольника в моем приложении. и меню на панели действий, из которого я могу изменить свой вид карты. также один FAB на фрагменте карты Google, чтобы изменить тип карты на спутниковый вид. Но когда я нажимаю на FAB, мое приложение cra sh и выбрасывает
NullPointerException: попытка вызвать виртуальный метод void com .google. android .gms.location.places.ui.SupportPlaceAutocompleteFragment.setFilter (com.google. android .gms.location.places.AutocompleteFilter) 'для ссылки на пустой объект.
вот мой код в методе onCreateView:
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
mapViewModel = ViewModelProviders.of(this).get(MapViewModel.class);
View root = inflater.inflate(R.layout.fragment_map, container, false);
setHasOptionsMenu(true);
FloatingActionButton fab = root.findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
}
});
, и это код, который работает в menuItem:
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
super.onOptionsItemSelected(item);
switch (item.getItemId()) {
case R.id.normal:
mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
break;
case R.id.satellite:
mMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
break;
case R.id.Draw:
mMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
break;
default:
return false;
}
return true;
}