2011-10-06 4 views
0

API 레벨 9에서 작업 중이므로 새로운 기본 설정 조각을 사용할 수 없습니다.preferenceActivity를 계층 구조에서 부분적으로 시작하는 방법

나는 api 데모에 따라 환경 설정과 XML 파일을 가져 오는 환경 설정 활동이 있습니다. 기본 설정 화면의 계층 구조를 사용하므로 최상위 화면을 클릭해야하는 환경 설정을 얻을 수 있습니다.

기본 메뉴에서 모든 기본 설정을 얻는 것뿐만 아니라 하위 화면 중 하나에서 기본 설정 활동을 시작하여 하위 화면 중 하나에서 직접 시작할 수 있기를 원합니다. 그 하위 기본 설정 그룹이 relervant하는 활동에 클릭을 말합니다.

누구나 알 수 있습니다. 일부 데이터를 의도와 함께 전달하는 것은 방법 일 것이라고 생각하지만 이것이 가능하다는 것을 발견 할 수는 없습니다. 모든

답변

1

여기 OK는 내가 Kurtis의 도움을 얻은 것입니다.

기본적으로 내 코드에서 환경 설정 활동을 시작하면 모든 환경 설정에 대한 작업이없고 작업 중 일부만 수행하려는 작업이 있습니다. 액션은 환경 설정의 키 또는 일종의 환경 설정 그룹과 일치해야합니다. 내 PreferencesFromXml 클래스에서

// all preferences 
Intent launchPreferencesIntent = new Intent().setClass(this, 
    PreferencesFromXml.class); 
startActivity(launchPreferencesIntent); 

// just key_trip_plot_control_preferences 
Intent launchPreferencesIntent = new Intent(
    getString(R.string.key_trip_plot_control_preferences)) 
    .setClass(this, PreferencesFromXml.class); 
startActivity(launchPreferencesIntent); 

나는 항상 XML에서 환경 설정을 추가하지만 작업이있는 경우 기본 설정이 일치하는 키를 찾고 있지만 그때 검색 할 수 있습니다. 하나를 찾으면 removeAll 환경 설정을 찾은 다음 일치하는 항목을 추가하거나 PreferenceGroupe 인 경우 해당 항목을 다시 추가합니다.

0

첫째, 환경 조각은 안드로이드 호환성 패키지를 통해 사용할 수 있습니다 : http://developer.android.com/sdk/compatibility-library.html

둘째, 그래이 가능하다. 조각이나 에이 티트를 만들 때 (어느 쪽을 선택했는지), addPreferencesFromIntent() 메소드 (http://developer.android.com/reference/android/preference/PreferenceFragment.html#addPreferencesFromIntent%28android.content.Intent%29)를 사용하고 전체 화면을 추가하는 대신 원하는 하위 스크린을 추가하십시오.

+0

글쎄 그것은 가능하다는 것을 확신합니다. API 레벨 11에서 보지 못했던 문서에서 새로운 점을 발견하게되었습니다. 불행히도 addPreferencesFromIntent() 단락은 진흙처럼 명확합니다. 더 많은 googeling는 내가하려고하는 것을하려고 노력하고있는 두 사람을 발견했다. 그러나 명백한 예는 없다. 내 curent atempt preferencemanager.inflateFromIntent에서 null 포인터 예외를 제공합니다, 그래서 prosumably 내 의도는 좋지 않습니다. – Ifor

+0

좋아요, addPreferencesFromIntent가 당신이 찾고있는 것과 정확히 일치하지 않을 수도 있습니다. 문서에 따르면, 당신은 의도에서 명시적인 활동을 설정함으로써 그것을 사용하기로되어 있습니다. 그러면 해당 활동 메타 데이터에 대한 질의가 수행되고 메타 데이터에 기본 설정이 있다고 가정합니다. 당신이 할 수있는 한 가지는 하위 환경 설정 화면과 특정 활동을 연관시키는 것입니다. 더 나은 옵션은 아마도 자신의 데이터를 의도에 포함시키고, 데이터를 직접 파싱 한 다음 전달 된 데이터에 종속적 인 리소스로 addPreferencesByResource()를 수행하는 것입니다. –

+0

OK AddPreferencesFromIntent를 실행하려면 내 매니페스트의 잘못된 위치에 메타 데이터가 있습니다. 이제 첫 번째 화면이 표시되지만 하위 화면을 클릭하면 오류/AndroidRuntime (2408)이 발생합니다. android.view.WindowManager $ BadTokenException : 창을 추가 할 수 없습니다 - 토큰 null은 다른 사람이보고 한 응용 프로그램에 대한 것이 아닙니다. 문제를 해결하기 위해 xml 파일을 복사하여 하위 레벨에 관심이있어 새로운 Activity를 만들었습니다. 만약 내가 XML에 포함시킬 수 있다면 이것은 괜찮을 것이지만 그것은 나를 위해 환경 설정 xml에서 일하고 싶다. – Ifor