Я использую метод Android onRestoreInstanceState
android, чтобы получить информацию, когда экран вращается, и он отлично работает, за исключением одной вещи.MenuItem setVisible on onRestoreInstanceState
Когда я пытаюсь установить видимую в MENUITEM, которые инициализированы в onCreateOptionsMenu
, он получает NullPointerException
и очень важно для funcionality, что элемент apearrs
Кто-нибудь знает, как это исправить?
Большое спасибо за помощь
Мой метод инициализировать элемент
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.map, menu);
itemClean = menu.findItem((R.id.map_clear_lines));
return true;
}
Мой метод восстановления информации
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
mapa.moveCamera(CameraUpdateFactory.newLatLngZoom(
(LatLng)savedInstanceState.getParcelable(MapConstants.MAP_CAMERA_LATLNG),
savedInstanceState.getFloat(MapConstants.MAP_CAMERA_ZOOM)));
if(savedInstanceState.getBoolean(MapConstants.MAP_TYPE)){
stateSatelitalMap();
}
if(savedInstanceState.containsKey(MapConstants.ROUTES_START)){
LatLng starLatLng = savedInstanceState.getParcelable(MapConstants.ROUTES_START);
LatLng finishLatLng = savedInstanceState.getParcelable(MapConstants.ROUTES_END);
markerStart = mapa.addMarker(new MarkerOptions().position(starLatLng).icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_inici_fin))
.title(getResources().getString(R.string.marker_confirm_start)).snippet(getResources().getString(R.string.snippet_confirm_start)));
markerFinish = mapa.addMarker(new MarkerOptions().position(finishLatLng).icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_inici_fin))
.title(getResources().getString(R.string.marker_confirm_end)).snippet(getResources().getString(R.string.snippet_confirm_end)));
getRoute(starLatLng, finishLatLng);
booleanEndConfirmed = true;
booleanStartConfirmed = true;
itemClean.setVisible(true);
}
все работает нормально, за исключением последней строки, в MENUITEM не вызывайте проблем, когда я использую его без вращения экрана
Есть ли причина, почему вы как раз не установить переменную-член, а затем использовать, чтобы установить видимость в onPrepareOptionsMenu? –
Я хотел сделать это напрямую, но это решение, в onRestoreInstanceState установили глобальную переменную и в onCreateOptionsMenu попросили его и сделали. благодаря –