【发布时间】:2019-05-09 23:28:58
【问题描述】:
尝试在 android studio 中进行应用。但我有一个问题。例如,梅赛德斯和奥迪汽车同时具有汽油和速度等特性。我想给一个班级写信,而不是为梅赛德斯和奥迪单独上课。我想从汽车类中识别出具有相似特征的品牌,然后用按钮打开它们。但是我不知道。你能给我举个例子吗?谢谢。
【问题讨论】:
-
你能贴一些代码让我们参考一下吗?
标签: java android android-activity
尝试在 android studio 中进行应用。但我有一个问题。例如,梅赛德斯和奥迪汽车同时具有汽油和速度等特性。我想给一个班级写信,而不是为梅赛德斯和奥迪单独上课。我想从汽车类中识别出具有相似特征的品牌,然后用按钮打开它们。但是我不知道。你能给我举个例子吗?谢谢。
【问题讨论】:
标签: java android android-activity
如果您希望为每个实例创建一个具有不同数据的活动,您可以使用捆绑数据来执行此操作。在您的汽车活动中:
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));
【讨论】:
据我理解,这比inheritance 多一点;这是数据结构设计的问题。
在您的情况下,典型继承如下所示:
enum FuelType {
Petrol, //gasoline
Diesel,
Electricity;
}
class Car {
FuelType fuelType;
float speed;
}
class Audi extends Car {}
class Mercedes extends Car {}
但是,由于您想开发具有相似功能的品牌(例如亚马逊上的一种“比较产品”选项),因此这个问题的范围超出了数据模型的语义结构;它包含了所显示数据的结构。包含一些代码以提供更清晰的图片。
【讨论】:
大概是这样的:
class Manufacturer { ... }
class Car { ... }
然后您可以将carId 传递给CarActivity 或将manufacturerId 传递给ManufacturerActivity。
【讨论】: