[英]How to share methods across multiple Android activities types
我正在使用ActionBarSherlock構建Android應用程序。
我有多種類型的活動:
我希望我的所有活動都共享通用方法來遵循屏幕的內部工作流程。
如果我創建一個擴展SherlockFragmentActivity
的Workflow
類,那么我的MapActivity does
不再工作。 如果我創建了一個擴展SherlockMapActivity
的Worflow
類,那么我的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);
}
您可以創建自定義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
組合成另一個類,因此您必須自己編寫內容或從第三方庫中提取所需的功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.