我正在使用onRestoreInstanceState
android的方法来获取屏幕旋转时的信息,它工作正常,除了一件事。
当我尝试将已初始化的 menuItem 设置为可见时onCreateOptionsMenu
,它会变得NullPointerException
并且对于项目出现的功能非常重要
有谁知道如何解决这一问题?
非常感谢您的帮助
我的初始化项目的方法
@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 在我使用它而不旋转屏幕时不会引起问题