微调项目我想要实现的动作条,这种种基于人气,评级和电影收入如何保持其在动作条
这里旋项目的活动的初始状态,我整理基础上最高评级,然后单击电影项目以显示“电影项目详细信息”。
实现步骤:当我点击详细信息页面的后退按钮时,它会转到上一页(按最高评分排序),但当我点击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