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

时间:2014-07-20 12:59:13

标签: android listview

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

谢谢!

4 个答案:

答案 0 :(得分:0)

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

首先,不要为每个食谱制作新的活动课程。有一个RecipeActivity获取ID。要将ID传递给活动,请使用intent extras。示例:Simple example for Intent and Bundle

对于数据库,请使用SQLite。示例:http://www.codeofaninja.com/2013/02/android-sqlite-tutorial.html

答案 1 :(得分:0)

我建议你将点击项目的ID传递给控制器​​,这会获取ID,并在数据库中搜索所有需要带有该ID的信息的信息(你应该使用ormlite框架简单地说,然后启动一个显示recipe的活动,除了显示收到它的数据之外没有别的事情要做。

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

另外,我会创建一个名为Receipe的模型类,它可以包含一个recipe的所有属性,还可以提供公共方法,如createReceipeFromDatabase(ID)等。

此外,在开始编写复杂的应用程序之前,您应该阅读有关设计模式和OOP概念的内容。

我希望它有所帮助,祝你好运!

答案 2 :(得分:0)

一般情况下,这取决于您的应用,您应该权衡使用片段和活动的优缺点,以确切了解您的应用。

例如,如果包含您的菜单的列表视图的活动有Navigation drawer,并且当用户看到食谱时应该可以访问此抽屉,那么在片段中显示配方是显而易见的,而不是在{{1}的新活动中显示将无法看见。

其他重要的是片段的生命周期比活动的生命周期更棘手。 (请在此处查看:https://github.com/xxv/android-lifecycle

活动和片段之间的主要区别是片段可以在活动中使用但反之亦然。因此,如果您将来需要将配方放入应用程序的其他部分,那么使用片段会更容易。

答案 3 :(得分:0)

创建TemplateActivity,当您点击列表项时,将行ID传递给TemplateActivity,如下所示

Intent i = new Intent(context,TemplateActivity.class);
i.putExtra("rowid", rowID);
context.startActivity(i);

TemplateActivity中获取行ID如下

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

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