2014-10-23 2 views
0

사람이 모두 작업 표시 줄 및 환경 설정이있는 Activity을 원하는 말, 마음의 첫 번째 생각은 아마도여러 안드로이드 활동

public class MyActivity extends ActionBarActivity, PreferenceActivity 

이다 그러나 자바는 이것을 허용하지 않습니다. API 11+ 활동에는 액션 바가 내장되어 있습니다. 이것은 여러 기본 클래스에서 여러 기능을 사용하는 방법을 궁금해하는 예일뿐입니다.

편집 : 의견에 따라 우리는이 경우 해킹해야 할 것 같습니다. IMHO 모든 액티비티 유틸리티를 클래스 Activity의 필드로 두는 것만 큼 간단하고 getter/setter를 구현하여 해당 유틸리티를 사용할 수 있습니다. 음, 현실에서는 그렇지 않습니다.

답변

1

아니요 Java의 두 클래스에서 확장 할 수 없습니다. 일반적으로 Android에 ActionBar를 이전 PreferenceActivity에 추가하려면 할 수있는 해킹 또는 동일한 작업을 수행하는 라이브러리가 필요합니다. 그러나 최근에 새로운 AppCompat 라이브러리를 사용하여 Toolbar widget을 도입했습니다.이 경우에는 PreferenceActivity에 작업 표시 줄을 추가하는 데 사용할 수 있습니다. 자세한 내용은 체크 아웃 this post 나는 최근에 기존 SettingsActivity에 툴바를 추가하는 방법을 썼습니다.

0

간단한 해결책 :

  • 은 첫째로 당신은 연장없이 다중 상속이 두 번째로 작업 표시 줄의 셜록 라이브러리 here,이 당신에게 작업 표시 줄 기능을 제공합니다을 사용하여 here
  • 참조 지원하지 않는 여러 classes..java을 확장 할 수 없습니다 행동 바 액티비티와 그 후방 호환성.

또는 ... 당신이 사용자 지정 작업 표시 줄을 구현할 수는 here 다른 답변에서 언급 한 바와 같이

0

는, 자바는 다중 상속을 허용하지 않습니다 이동합니다.

당신이 ActionBar뿐만 아니라 환경 설정 기능과 같은 무언가를 원하는 경우에, Activities에 추가 기능을 추가 허용 PreferenceFragment

그것은 다중 상속으로 아주 동일 하

하지만 Fragments을 사용하는 것이 좋습니다.

0

AppCompatPreferenceActivity (또는 원하는대로) PreferenceActivity의 하위 클래스를 만들어 AppCompatDelegate을 사용하여 SupportActionBar 기능을 제공 할 수 있습니다. 당신은 다음과 같이 당신의 MyActivity 클래스 AppCompatPreferenceActivity 새로운 하위 클래스 수 있습니다 the AppCompatPreferenceActivity sample code from the Chromium project을 확인,이 작업을 수행하는 방법에 대한

public class MyActivity extends AppCompatPreferenceActivity 

합니다.