假设某人想要一个既有操作栏又有偏好的Activity
,首先想到的可能是
public class MyActivity extends ActionBarActivity, PreferenceActivity
但Java不允许这样做。我知道API 11+活动内置了actionbar。这只是一个想知道如何使用多个基类的多个功能的例子。
编辑:根据反馈,我们似乎必须在这种情况下进行攻击。恕我直言,它可以像将所有活动实用程序作为类Activity
中的字段一样简单,并实现getter / setter来使用这些实用程序。嗯,实际上,事实并非如此。
答案 0 :(得分:1)
不,你不能从Java中的两个类扩展。通常在Android中将ActionBar添加到较旧的PreferenceActivity
中,您可以执行几个黑客攻击或执行相同操作的库。但是,最近使用新的AppCompat库,他们引入了Toolbar widget,在这种情况下可用于向PreferenceActivity
添加操作栏。有关详情,请查看this post我最近写了一篇关于如何将工具栏添加到旧版SettingsActivity的文章。
答案 1 :(得分:0)
简单的解决方案:
或者......您可以实施自定义操作栏转到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。