如何扩展多个Android活动

时间:2014-10-23 21:15:25

标签: android

假设某人想要一个既有操作栏又有偏好的Activity,首先想到的可能是

public class MyActivity extends ActionBarActivity, PreferenceActivity

但Java不允许这样做。我知道API 11+活动内置了actionbar。这只是一个想知道如何使用多个基类的多个功能的例子。

编辑:根据反馈,我们似乎必须在这种情况下进行攻击。恕我直言,它可以像将所有活动实用程序作为类Activity中的字段一样简单,并实现getter / setter来使用这些实用程序。嗯,实际上,事实并非如此。

4 个答案:

答案 0 :(得分:1)

不,你不能从Java中的两个类扩展。通常在Android中将ActionBar添加到较旧的PreferenceActivity中,您可以执行几个黑客攻击或执行相同操作的库。但是,最近使用新的AppCompat库,他们引入了Toolbar widget,在这种情况下可用于向PreferenceActivity添加操作栏。有关详情,请查看this post我最近写了一篇关于如何将工具栏添加到旧版SettingsActivity的文章。

答案 1 :(得分:0)

简单的解决方案:

  • 首先,您无法扩展多个类..java不支持多重继承,请参阅 here
  • 其次使用操作栏sherlock库 here, ,这样就可以在不扩展actionbaractivity及其向后兼容的情况下为您提供操作栏功能。

或者......您可以实施自定义操作栏转到here

答案 2 :(得分:0)

正如其他答案所述,Java不允许多重继承。

如果您想要ActionBar以及偏好功能等内容,请考虑使用PreferenceFragment

它与多重继承不完全相同,但Fragments允许向Activities添加额外功能。

答案 3 :(得分:0)

您可以创建PreferenceActivity的子类,称为AppCompatPreferenceActivity(或您想要的任何内容),以使用AppCompatDelegate提供SupportActionBar功能。然后,您可以为AppCompatPreferenceActivity类创建新的MyActivity子类,如下所示:

public class MyActivity extends AppCompatPreferenceActivity

如何执行此操作,请查看the AppCompatPreferenceActivity sample code from the Chromium project