我应该为Android ListView中的每个列表元素创建一个新活动吗?

我应该为Android ListView中的每个列表元素创建一个新活动吗?,android,listview,Android,Listview,我正在制作一个食谱应用程序。所以我的listview包含了所有的菜肴。当用户点击,说“汉堡”,我想打开汉堡食谱。但是,我应该为每道菜创建一个新的活动吗?是否可以创建模板活动并将所有配方存储在数据库中(包括图像) 谢谢 我不提供代码,因为您需要在自己的时间学习一些不同的东西 首先,不要为每个食谱创建新的活动类。有一个接受ID的RecipeActivity。要将ID传递给活动,请使用intent extras。示例如下: 对于数据库,请使用SQLite。这里的示例:我建议您将单击项目的ID传递给控制

我正在制作一个食谱应用程序。所以我的listview包含了所有的菜肴。当用户点击,说“汉堡”,我想打开汉堡食谱。但是,我应该为每道菜创建一个新的活动吗?是否可以创建模板活动并将所有配方存储在数据库中(包括图像)


谢谢

我不提供代码,因为您需要在自己的时间学习一些不同的东西

首先,不要为每个食谱创建新的活动类。有一个接受ID的
RecipeActivity
。要将ID传递给活动,请使用intent extras。示例如下:


对于数据库,请使用SQLite。这里的示例:

我建议您将单击项目的ID传递给控制器,这将获取ID并在数据库中搜索具有该ID的receipe所需的所有信息(您应该使用非常简单的框架)然后启动一个显示receipe的活动,它除了显示接收到的数据之外,没有其他事情可做

这样,您的可移植性增加,您的DisplayReceipeActivity(如果可以)是干净的,并且只做它应该做的事情:显示数据,而您的控制器完成所有工作

另外,我将创建一个名为Receipe的模型类,它可以保存Receipe的所有属性,还可以提供诸如createReceipeFromDatabase(ID)等公共方法

此外,在编写复杂的应用程序之前,您应该阅读一些关于设计模式和OOP概念的知识


我希望这有帮助,祝你好运

一般来说,这取决于你的应用程序,你应该权衡在你的应用程序中使用片段和活动的利弊

例如,如果包含您的菜品列表视图的活动具有
导航抽屉
,并且当用户看到菜谱时,应该可以访问此抽屉,那么显然可以在片段中显示菜谱,而不是在新活动中显示,
导航抽屉

另一个重要的事情是片段的生命周期比活动的生命周期更复杂。(请在此处检查:)


活动和片段之间的主要区别在于,片段可以在活动内部使用,但不能在活动内部使用。因此,如果将来您需要将配方放在应用程序的其他部分,那么使用fragment将更容易。

创建一个
模板活动
,当您单击列表项时,将行id传递给
模板活动
,如下所示

Intent i = new Intent(context,TemplateActivity.class);
i.putExtra("rowid", rowID);
context.startActivity(i);
模板活动中
获取行id,如下所示

Intent i = getIntent();
int rowID = i.getIntExtra("rowid", 0);

然后您可以使用行id查询数据库以获取数据

谢谢!然而,对于每道菜,除了文字,我还会有一堆图像。如何将这些图像存储在数据库中?您可以将图像作为BLOB存储在SQLite数据库中,请检查此项,谢谢!然而,对于每道菜,除了文字,我还会有一堆图像。如何将这些图像存储在数据库中?最上面的答案很好地解释了这一点:我如何在发布之前将信息存储在数据库中,以便将数据打包到已发布的应用程序中?谢谢