过滤菜单,其中的项目根据变量的值而变化

时间:2013-03-19 06:53:44

标签: android android-intent android-actionbar android-spinner android-menu

我正在开发一个应用程序,其目的是根据单击的按钮显示listview中数据库的一些内容。它以这种方式工作:我有一个主要活动有9个不同的按钮(例如:“餐馆”“快餐”“咖啡店”等),每次用户点击其中一个按钮时,它会打开一个相同的活动(称为ResultListViewActivity)但每次都有不同的内容(餐馆名单,快餐等) 因此,只有一个活动可以显示内容,但列表视图的内容本身会根据点击的按钮而有所不同。

现在这个工作,我想在ResultListViewActivity中添加一个过滤器菜单,为用户添加更多选项。问题是,根据点击的按钮,此菜单应该不同。例如,如果用户单击主活动中的“餐馆”,它应该打开ResultListViewActivity,其菜单包含“亚洲美食”,“法国菜”等项目,但如果他点击咖啡店,它将是“茶馆”“咖啡馆”等具有每个项目的具体方法。

我的想法是组织这个代码:
enter image description here

这个想法是有一个名为myVariable的变量,其值在任何时候点击一个按钮时设置(例如:你点击button1,myVariable = 1),将这个变量发送到我的ResultListViewActivity,然后用“if”写出9个情况“句子 在每种情况下,我都会在菜单中添加项目并定义这些项目应该做什么。

我的问题是:我认为这应该有效,但我也知道可能会有更直接或更轻松的事情来避免写出9种情况。我愿意按照上面解释的方式编写我的代码,但我担心我在android中的初学者级别让我不知道一些更有效的方法。

ps:访问项目我可能会在我的操作栏中使用一个名为“过滤器”的子菜单,或者如果不可能则使用微调器(我的屏幕底部已经有一个操作栏,不确定我可以拥有另一个在上面。)

1 个答案:

答案 0 :(得分:1)

您可以创建9个不同的菜单并为myVariable充气。假设myVariable是一个整数,那么

@Override
public boolean onCreateOptionsMenu(Menu menu) 
{
    switch (myVariable)
    {
        case 1: 
            getMenuInflater().inflate(R.menu.activity_restaurant, menu);
            break;

        case 2:
            ........

        .....
    }

    return super.onCreateOptionsMenu(menu);
}