public void setupStreamList(final List<VideoStream> videoStreams) { if (activity != null) { selectedVideoStream = 0; // this array will be shown in the dropdown menu for selecting the stream/resolution. String[] itemArray = new String[videoStreams.size()]; for (int i = 0; i < videoStreams.size(); i++) { VideoStream item = videoStreams.get(i); itemArray[i] = MediaFormat.getNameById(item.format) + " " + item.resolution; } int defaultResolution = getDefaultResolution(videoStreams); ArrayAdapter<String> itemAdapter = new ArrayAdapter<>( activity.getBaseContext(), android.R.layout.simple_spinner_dropdown_item, itemArray); ActionBar ab = activity.getSupportActionBar(); // todo: make this throwsable assert ab != null : "Could not get actionbar"; ab.setListNavigationCallbacks( itemAdapter, new ActionBar.OnNavigationListener() { @Override public boolean onNavigationItemSelected(int itemPosition, long itemId) { selectedVideoStream = (int) itemId; return true; } }); ab.setSelectedNavigationItem(defaultResolution); } }