我正在使用 ActionBarSherlock 构建 Android 应用程序。
我有多种类型的活动:
我希望所有我的活动共享常用方法以跟进屏幕的内部工作流程。
如果我创建的Workflow
类扩展SherlockFragmentActivity
,那么我的MapActivity does
将无法使用。
如果我创建了一个Worflow
类扩展SherlockMapActivity
,那么我的TutorialActivity
将不再有效(因为它使用的是new SectionsPagerAdapter(getSupportFragmentManager());
。
请注意我想要的常用方法也在运行startActivity()
。
我知道Java不能有一个扩展多个类的类,所以我应该怎么做呢?
public class Workflow extends SherlockMapActivity {
protected void goMain() {
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
// ...
}
public class TutorialActivity extends Workflow {
// ...
// new SectionsPagerAdapter(getSupportFragmentManager());
// ...
}
public class GameActivity extends Workflow {
// ...
// MapView
// ...
}
我也想分享这样的代码:
@Override
protected void onCreate(Bundle savedInstance) {
super.onCreate(savedInstance);
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setProgressBarIndeterminate(true);
setProgressBarIndeterminateVisibility(false);
}
答案 0 :(得分:2)
您可以创建自定义Activity
课程并将其扩展到您的活动中。
例如:
public abstract class DerivedActivityA extends Activity implements CustomInterfaceA {
// ... your code here
}
public abstract class DerivedActivityB extends DerivedActivityA implements CustomInterfaceB {
// ... your code here
}
如果你必须实现多个接口,那么就像我上面那样使用抽象类并实现接口。
修改强>
如果我做对了SectionsPagerAdapter
只是一个适配器,那么你可以在一个类中将它作为一个字段组合。
<强> EDIT2:强>
您不能扩展两个类,也不能将Activity
组成另一个类,因此您必须自己编写内容或从第三方库中提取所需的功能。