【发布时间】:2015-01-26 00:44:42
【问题描述】:
我目前有一个父类,它有两个子类,我真正想做的是让它们都继承一个共享变量(浮点数)。我需要在 subclass1 中设置 float 的值,然后在 subclass2 中使用 float 的值。我应该补充一点,这些都是 android 活动,并且 subclass1 位于活动链的开头,而 subclass2 位于该链的末尾,其间的所有活动也是同一个父类的子类。
我目前拥有的类似于以下内容: (我留下了很多其他代码,这只是最基本的)
class activityParent extends Activity{
public static float value;
public void setValue(){
//grab the value from phone (ill leave this code out and will hardcode a value below as an example)
value = 0.6f;
}
public void useValue(){
//where i use the value in another function here
otherFuncion(value);
}
}
class subclass1 extends activityParent
{
@Override
public void onCreate(Bundle bundle){
setValue();//need this to be initialized first
super.onCreate(bundle);
}
}
class subclass2 extends activityParent{
//some previous code here
//i need to use the value just before the activity finishes
useValue();
finish();
}
该浮点值永远不会在其他任何地方使用。
这种方法似乎是错误的,我知道,但我不确定如何正确实施。
我正在考虑通过意图传递数据,但正如前面提到的,这两个子类之间没有直接联系,它们之间存在一系列活动,我宁愿不必将这些数据全部串起来以达到结束。
【问题讨论】:
-
我知道这可能不是一个好习惯,但您可以将值写入文件并在另一个活动中读取。
-
我看不出这种方法的问题。您有一个静态变量,您可以随时随地访问它,而无需传递给任何活动。或者你的问题可能不够清楚!
-
同意@NguyenDoanTung。如果您认为拥有静态字段是邪恶的,我建议使用单例数据容器类或使用 SharedPreferences(Android 中最简单的持久存储)来存储和获取值。
标签: java android inheritance subclassing