我在其中创建了一个菜单项 (Spinner).onCreateOptionsMenu并希望保留屏幕旋转时的选择。我知道使用 是常见的做法SharedPreferences,但是在这种情况下我有点困惑,因为我没有在 中创建我的视图.onCreate(),我通常会在那里加载我保存的首选项:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.action_bar_spinner, menu);
MenuItem item = menu.findItem(R.id.spinner);
mSpinner = (Spinner) item.getActionView();
int selectedPosition = mPrefs.getInt(SPINNER_SELECTION, 0);
mSpinner.setSelection(selectedPosition);
if (isOnline()) {
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(getApplicationContext(), R.array.spiner_list_item_array, R.layout.custom_spinner);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mSpinner.setAdapter(adapter);
mSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
mPrefsEditor.putInt(SPINNER_SELECTION, i);
mPrefsEditor.commit();
switch (i) {
case 0:
mBaseURL = "https://api.themoviedb.org/3/movie/popular/";
calltoRetrofit(mBaseURL);
break;
case 1:
mBaseURL = "https://api.themoviedb.org/3/movie/top_rated/";
calltoRetrofit(mBaseURL);
break;
case 2:
mIsFavoriteSelected = true;
mMovieURLS.clear();
retrieveMovies();
break;
default:
mBaseURL = "https://api.themoviedb.org/3/movie/popular/";
break;
}
}
隔江千里
相关分类