我有一个父活动类,我的所有子活动类都从中扩展。此父活动具有一个名为“ activity_Id”的字段,该字段为字符串,默认为空。
在父活动的onCreate中,我需要检查该字段是否具有一个值,如果我在父活动的onCreate中执行其他逻辑,则只能从子活动中获取该值。
请注意,每个活动都有一个唯一的“ activity_Id”,用于更改正在执行的其他逻辑。
这是ParentActivity:
public class ParentActivity extends Activity{
protected String activity_Id = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(activity_Id != null)
//DO OTHER LOGIC UNIQUE TO THIS STRING ID
}
}
这是ChildActivity:
public class ChildActivity extends ParentActivity{
public ChildActivity(){
super();
activity_Id = "Foo123";
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
此activity_Id字符串是预先确定的,但与“活动”名称不匹配,因此我无法执行
this.getClass().getName() 在我的ParentActivity类中。
这似乎是一种清洁方式,但是在活动中使用构造函数似乎有些禁忌,所以我只想确保自己不破坏任何内容。或者,如果有人可以想到一种更清洁的方法呢?
这可以用抽象类完成,因为构造函数不会直接构造活动。
像这样尝试
public abstract class ParentActivity extends Activity{
protected abstract String activityId();
.....
}
然后在子活动中覆盖activityId()所需的值。现在你可以比较activityId()的ParentActivity onCreate(...)方法。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。