【问题标题】:how to combine similar activities in one activity in android studio?如何在 android studio 的一项活动中组合类似的活动?
【发布时间】:2019-05-09 23:28:58
【问题描述】:

尝试在 android studio 中进行应用。但我有一个问题。例如,梅赛德斯和奥迪汽车同时具有汽油和速度等特性。我想给一个班级写信,而不是为梅赛德斯和奥迪单独上课。我想从汽车类中识别出具有相似特征的品牌,然后用按钮打开它们。但是我不知道。你能给我举个例子吗?谢谢。

【问题讨论】:

  • 你能贴一些代码让我们参考一下吗?

标签: java android android-activity


【解决方案1】:

如果您希望为每个实例创建一个具有不同数据的活动,您可以使用捆绑数据来执行此操作。在您的汽车活动中:

public static Intent newIntent(Context context, String brand, int speed, FuelType fuel)
{
    Intent intent = new Intent(context, CarActivity.class);
    intent.putExtra(ARG_BRAND, brand);
    intent.putExtra(ARG_SPEED, speed);
    intent.putExtra(ARG_FUELTYPE, fuel);
    return intent;
}

然后您可以在 onCreate() 中读取这些值

您可以为各种按钮按下启动此活动,例如:

startActivity(CarActivity.newIntent(getActivity(), "Mercedes", 220, FuelType.Diesel));

【讨论】:

    【解决方案2】:

    据我理解,这比inheritance 多一点;这是数据结构设计的问题。

    在您的情况下,典型继承如下所示:

    enum FuelType {
        Petrol, //gasoline
        Diesel,
        Electricity;
    }    
    
    class Car {
        FuelType fuelType;
        float speed;
    }
    
    class Audi extends Car {}
    
    class Mercedes extends Car {}
    

    但是,由于您想开发具有相似功能的品牌(例如亚马逊上的一种“比较产品”选项),因此这个问题的范围超出了数据模型的语义结构;它包含了所显示数据的结构。包含一些代码以提供更清晰的图片。

    【讨论】:

      【解决方案3】:

      大概是这样的:

      class Manufacturer { ... }
      
      class Car { ... }
      

      然后您可以将carId 传递给CarActivity 或将manufacturerId 传递给ManufacturerActivity

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-02-14
        • 1970-01-01
        • 2022-01-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多