首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >java多重继承ActionBarActivity

java多重继承ActionBarActivity
EN

Stack Overflow用户
提问于 2015-04-04 00:17:17
回答 2查看 307关注 0票数 0

我有一个类(它是我的主要活动),它已经扩展了其他类:

代码语言:javascript
运行
复制
public class AdvancePreferences extends CustomPreferences 

我想用v7 ActionBar。根据这个站点:https://developer.android.com/training/basics/actionbar/setting-up.html,我需要扩展ActionBarActivity。看起来我这里需要多重继承:

代码语言:javascript
运行
复制
public class AdvancePreferences extends CustomPreferences extends ActionBarActivity

如何解决此问题?我不想失去首选项功能。

-更多细节:我不确定这是否重要,但是:我的AdvancePreferences扩展了自定义类CustomPreferences。CustomPreferences扩展了PreferenceActivity并实现了OnSharedPreferenceChangeListener。现在,我不仅需要AdvancePreferences扩展CustomPreferences,还需要扩展ActionBarActivity。

EN

回答 2

Stack Overflow用户

发布于 2015-04-04 01:32:05

Java不允许多重继承。

顺便说一句,您可以让它首先从ActionBarActivity扩展(也许您可以将该类用于更多使用ActionBar的活动),然后再次扩展该类以使用首选项。

使用这种方法,继承树将是:public class BaseActionBarActivity extends ActionBarActivity (这可以用于更多活动) public class PreferencesActivity extends BaseActionBarActivity (这完全集中在Preferences做的任何事情上)

另一方面,如果你想使用安卓的PreferencesActivity方法,你可以使用Fragments来处理,但我不知道你到底在做什么,Preferences类是做什么的。

顺便说一下,查看以下链接可以获得更多信息(在需要使用PreferencesFragment/Activity的情况下):PreferenceFragment androidPreferenceActivity

票数 1
EN

Stack Overflow用户

发布于 2015-04-04 03:38:44

正如在SekthDroid的回答中所提到的,你不能从两个类继承。这里的方法是扩展ActionBarActivity,而不是使用PreferenceActivity,而是将您的首选项相关逻辑放入扩展PreferenceFragment的片段中。

这是实现这一点的推荐方式,除非你还在为预蜂窝设备进行开发:

在HONEYCOMB这个类之前,PreferenceActivity只允许显示一组首选项;现在应该可以在新的PreferenceFragment类中找到此功能。如果您在旧模式下使用PreferenceActivity,这里的文档适用于这里不推荐使用的API。

http://developer.android.com/reference/android/preference/PreferenceActivity.html

PreferenceFragments的使用非常相似,将您的逻辑从CustomPreferences活动类转移到CustomPreferences片段类应该很简单。

因此,整个层次结构将如下所示:

  • 公共类AdvancePreferencesActivity扩展ActionBarActivity
  • public类CustomPreferencesFragment扩展PreferenceFragment
  • public类AdvancePreferencesFragment扩展CustomPreferencesFragment

您当前在AdvancePreferences中拥有的所有额外首选项逻辑都将放入AdvancePreferencesFragment中,而AdvancePreferencesActivity只是一个将AdvancePreferencesFragment作为片段添加的基本活动:

http://developer.android.com/training/basics/fragments/creating.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29435841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档