0

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

现在这可行,我想在我的 ResultListViewActivity 中添加一个过滤器菜单,以为用户添加更多选项。问题是,这个菜单应该根据点击的按钮而有所不同。例如,如果用户在 Main Activity 中单击“Restaurants”,它应该打开 ResultListViewActivity,其中包含“亚洲美食”、“法国美食”等项目的菜单,但如果他单击咖啡店,它将是“茶馆”“咖啡厅”等,每个项目都有特定的方法。

这是我组织此代码的想法:
在此处输入图像描述

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

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

ps:要访问项目,我可能会使用我的操作栏或微调器中名为“过滤器”的子菜单,如果它不可能的话(我的屏幕底部已经有一个操作栏,不确定我是否可以打开另一个操作栏最佳)。

4

1 回答 1

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);
}
于 2013-03-19T07:16:19.443 回答