【发布时间】:2017-04-28 12:15:50
【问题描述】:
我正在开发一个显示不同电影的应用程序,我的菜单上有三个选项:评分最高、最受欢迎和最喜欢的。
我通过布尔值控制显示的电影,这样:
- isFavorite = true && is topRated = false => 显示收藏夹
- isFavorite = false && topRated = true => 显示 topRated
- isFavorite = false && topRated = false => 显示最受欢迎的
到目前为止,当我在 OnCreate() 上手动设置值时,它可以工作!
当我尝试通过单击菜单的不同选项来更改此值时,我的问题出现了......它显示相同的电影列表,独立于我单击的选项。
这是我的 onOptionItemSelected() 方法:
public boolean onOptionsItemSelected(MenuItem item) {
int itemId = item.getItemId();
switch (itemId){
case R.id.most_popular:
setFavorite(false);
setTopRated(false);
movieAdapter.notifyDataSetChanged();
Context context = MainActivity.this;
String textToShow = "Sorted by most popular";
Toast.makeText(context, textToShow, Toast.LENGTH_SHORT).show();
break;
case R.id.highest_rated:
setFavorite(false);
setTopRated(true);
movieAdapter.notifyDataSetChanged();
context = MainActivity.this;
textToShow = "Sorted by rate";
Toast.makeText(context, textToShow, Toast.LENGTH_SHORT).show();
break;
case R.id.favorites:
setFavorite(true);
setTopRated(false);
movieAdapter.notifyDataSetChanged();
context = MainActivity.this;
textToShow = "Here is your favorites list";
Toast.makeText(context, textToShow, Toast.LENGTH_SHORT).show();
break;
default:
Log.w(TAG, "Menu selection is not handled. ItemId;" + itemId);
}
return super.onOptionsItemSelected(item);
}
提前致谢:)
【问题讨论】:
-
请不要依赖外部链接,在帖子中添加您的代码,我们会尽力找到答案
-
onCreate 只加载收藏的电影。你在哪里实现过滤逻辑?
-
@M.Situation,谢谢,我是新来的,我没想到。我刚刚编辑了我的消息。 @W
-
@WalterPalladino,我在我的 AynckTask 上实现了它