gpt4 book ai didi

java - 如何跨多个 Android Activity 类型共享方法

转载 作者:行者123 更新时间:2023-11-29 21:55:10 24 4
gpt4 key购买 nike

我正在使用 ActionBarSherlock 构建 Android 应用程序。

我有多种类型的 Activity :

  • SherlockFragmentActivity
  • SherlockMapActivity
  • 夏洛克 Activity

我希望我的所有 Activity 共享通用方法以遵循屏幕的内部工作流程。

如果我创建一个扩展 SherlockFragmentActivityWorkflow 类,那么我的 MapActivity 将不再工作。如果我创建一个扩展 SherlockMapActivityWorflow 类,那么我的 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 类并在您的 Activity 中扩展它。

例如:

public abstract class DerivedActivityA extends Activity implements CustomInterfaceA {

// ... your code here
}

public abstract class DerivedActivityB extends DerivedActivityA implements CustomInterfaceB {

// ... your code here
}

如果您必须实现多个接口(interface),请像我上面那样使用抽象类并实现接口(interface)。

编辑:如果我没看错的话,SectionsPagerAdapter 只是一个适配器,所以您可以将它作为一个字段组合到您的一个类中。

编辑2:您不能扩展两个类,也不能将一个 Activity 组合到另一个类中,因此您要么必须自己编写内容,要么从第三方库中提取所需的功能。

关于java - 如何跨多个 Android Activity 类型共享方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13399474/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com