创建类似的活动

时间:2019-12-22 17:52:27

标签: android

我对创建多个类似活动有一个一般性的问题。假设我们有一个应用程序,您可以在其中订购几种不同的菜肴(假设我们有20种菜肴)。对于每道菜,都有一个用于定制(关于尺寸)和订购的活动。因此,基本上所有活动都非常相似。我现在的问题是,我是否必须为所有20种菜肴创建一个单独的活动,还是通过仅创建一个活动并将菜肴的各个价值传递给它来实现这一目标的更优雅的方式?

我知道Java中有抽象类。但是,即使使用它们,我仍然必须为每个盘子创建一个活动,并为布局创建一个单独的XML文件,对吗?

1 个答案:

答案 0 :(得分:1)

您无需为每个菜创建单独的活动!您需要做的就是使用getIntent()方法来了解点击来自何处,并使用相应的值填充视图。

让我们说您想订购盘子1,在按钮上订购盘子,附加意图以打开活动并附加其他物品,对其他菜肴进行此操作。在显示菜品信息的活动中,获取其他内容并使用它们填充XML的视图。这意味着您可以将一项活动重复用于许多菜肴。

编辑:忘记添加代码段。假设您正在选择菜式的活动中。

在这种情况下,我假设用户想要炸玉米饼,我将盘子的名称额外包装,然后发送到DishInfo活动,如下所示。

Intent intent = new Intent(this, DishInfo.class);
String dish = "Tacos";
intent.putExtra("DISH_NAME", dish);
startActivity(intent);

在DishInfo活动中,我通过调用getIntent()方法获得了打开活动的意图,在这种情况下,我通过getStringExtra()获得了String,因为我传递的是一个字符串。我将从Intent中获得的文本设置为textview。

TextView dishDisplayed = findViewById(R.id.TextView);
Intent intent = getIntent();
String dish = intent.getStringExtra("DISH_NAME");
dishDisplayed.setText(dish);

我创建了这个示例,假设您要发送给新Activity的重要信息是菜的简单名称。我还假定您将使用传统的findViewById()而不是绑定。

意图比这更强大,您可以在这里https://developer.android.com/guide/components/intents-filters

了解更多信息
相关问题