【发布时间】:2010-11-25 06:20:38
【问题描述】:
我想提供不同活动类型之间的通用功能,例如打开和关闭数据库连接。考虑以下类:
public class DataActivity extends Activity {
private DbAdapter mDbAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//open database
mDbAdapter = new DbAdapter(this);
mDbAdapter.open();
}
@Override
protected void onDestroy() {
super.onDestroy();
//close database
mDbAdapter.close();
}
public DbAdapter getDbAdapter() {
return mDbAdapter;
}
}
然后我可以简单地扩展DataActivity 并在整个班级中访问我的数据。但是,如果我想为ListActivity 或ExpandableListActivity 执行此操作怎么办?我需要复制DataActivity 并让它扩展所需的类。
对于我想要添加的每个活动类型的多个具有重复实现代码的类,这似乎真的很混乱。
编辑 由于Java的设计方式(没有多重继承),看起来我在上面尝试做的事情实际上是不可能的。有几种方法可以最大限度地减少代码重复,但在这种情况下继承不起作用。
【问题讨论】:
标签: android inheritance android-activity