gpt4 book ai didi

android - 创建类似的 Activity

转载 作者:行者123 更新时间:2023-11-29 22:36:47 24 4
gpt4 key购买 nike

我有一个关于创建多个类似 Activity 的一般性问题。假设我们有一个应用程序,您可以在其中点几道不同的菜(假设我们有 20 道菜)。对于每道菜,都有一个定制(关于大小)和订购的 Activity 。所以基本上所有的 Activity 都非常相似。我现在的问题是,我是否必须为所有 20 道菜创建一个单独的 Activity ,或者是否有更优雅的方法,只创建一个 Activity 并将菜肴的各个值传递给它?

我知道Java有抽象类。但即使我使用它们,我仍然需要为每道菜创建一个 Activity ,并为布局创建一个单独的 XML 文件,对吧?

最佳答案

您无需为每道菜创建单独的 Activity !您需要做的就是使用 getIntent() 方法来了解点击的来源,并使用相应的值填充您的 View 。

假设您要点菜 1,在点菜按钮上,附加打开 Activity 的 Intent 并附加附加项,对其他菜执行此操作。在显示菜肴信息的 Activity 中,获取附加项并使用它们填充 XML 的 View 。这意味着您可以为许多菜肴重复使用一个 Activity 。

编辑:忘记添加代码 fragment 。假设您正在进行选择菜肴的 Activity 。

在这种情况下,我假设用户想要炸 Jade 米饼,我将菜肴的名称打包在一个额外的文件中并发送到 DishInfo Activity ,如下所示。

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

在 DishInfo Activity 中,我通过调用 getIntent() 方法获得打开 Activity 的 Intent ,并在本例中使用 getStringExtra() 获得字符串,因为我传递的是一个字符串。我将从 Intent 获得的文本设置到 textview。

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

我制作此示例时假设您要发送到新 Activity 的重要信息是菜品的简单名称。我还假设您会使用传统的 findViewById() 而不是绑定(bind)。

Intent 比这更强大,您可以在这里阅读更多关于它们的信息 https://developer.android.com/guide/components/intents-filters

关于android - 创建类似的 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59446705/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com