微調項目我想要實現的動作條,這種種基於人氣,評級和電影收入如何保持其在動作條
這裏旋項目的活動的初始狀態,我整理基礎上最高評級,然後單擊電影項目以顯示「電影項目詳細信息」。
實現步驟:當我點擊詳細信息頁面的後退按鈕時,它會轉到上一頁(按最高評分排序),但當我點擊DetailsActivity的主頁按鈕(操作欄中的上按鈕)時,在MainActivity表示由熱門程度排序,而不是由最高收視率
下面是代碼實現菜單項
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.forecast_fragment_menu, menu);
MenuItem item = menu.findItem(R.id.action_settings);
Spinner spinner = (Spinner) MenuItemCompat.getActionView(item);
ArrayAdapter adapter = ArrayAdapter.createFromResource(getActivity(), R.array.sortBy_Entries, android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String[] sortByEntriesList = getResources().getStringArray(R.array.sortBy_Entries);
String[] sortByValuesList = getResources().getStringArray(R.array.sortBy_Values);
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
String mSortOrder = sharedPreferences.getString(SORT_ORDER, SORT_ORDER_DEFAULT_VALUE);
CheckedTextView textView = (CheckedTextView) view;
String sortBy = (String) textView.getText();
if (sortBy.equals(sortByEntriesList[0])) {
mSortOrder = sortByValuesList[0];
} else if (sortBy.equals(sortByEntriesList[1])) {
mSortOrder = sortByValuesList[1];
} else if (sortBy.equals(sortByEntriesList[2])) {
mSortOrder = sortByValuesList[2];
}
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(SORT_ORDER,mSortOrder);
editor.commit();
updateMovies();
}
這就是我所理解的列表,該錯誤造成的,因爲家用/向上按鈕對Mainactivity的destoy觀點,然後重新創建MainActivity,(暗示它再次進入onCreateOptionsMenu)
而單擊後退按鈕時,該MainAcitvity不被破壞,因爲它在的onStop狀態和按後退按鈕它進入在onStart狀態,
(另一種看法,在Mainactivity改變微調項目時只setOnItemSelectedListener被稱爲不onCreateOptionsMenu。)
我的問題是,如何按向上鍵
我認爲這更多的是一個問題http://stackoverflow.com/questions/16657421/back-and-nav-up-have-different-results 向上按鈕被重建在MainActivity,而後退按鈕重新開始活動。我發現霍斯提出的解決方案不起作用 –
我把它看作是一個問題stackoverflow.com/questions/16657421/...向上按鈕重新創建MainActivity,而backButton重新開始活動。我發現解決方案霍斯建議不起作用。相反,我試着用這個代碼在onOptionsItemSelected if(id == android.R.id.home){ Intent intent = NavUtils.getParentActivityIntent(this); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); NavUtils.navigateUpTo(this,intent); 返回true; } –
您可以做什麼,將Spinner項目保存到設置中,並在活動重新創建後從設置中讀取。 http://developer.android.com/guide/topics/ui/settings.html – tim687