2012-10-15 2 views
2

Holo 스타일 (비 권장) PreferenceActivity를 만드는 방법이 있으며 XML이 아닌 순수 Java로 헤더/조각을 만들 수 있습니까? 프로그래밍 방식으로 헤더를 추가 및 제거 할 수 있습니까?XML이없는 Android PreferenceActivity

+0

안녕하세요! 지금까지 해봤 던 것을 우리에게 말해 줄 수 있습니까? 아마도 당신이 시도한 검색 중 일부는 효과가 없었을 것입니까? 이것은 그들이 당신의 문제를 더 빨리 해결할 수 있기 때문에 당신이 뭘 찾았는지 안다면 도움을 줄 것이며 당신을 도울 것입니다. :) – Robotnik

답변

2

당신은/생성 OnBuildHeaders에 자신의 헤더를 추가 한 다음 onHeaderClick의 ID를 확인할 수 있습니다 : 사이트에 오신 것을 환영합니다

@Override 
public void onBuildHeaders(List<Header> target) { 
    //loadHeadersFromResource(R.xml.prefs_sync_plugins, target); 

    Header customHeader = new Header(); 
    customHeader.titleRes= R.string.customHeaderTitle; 
    customHeader.id = R.string.customHeaderTitle; 
    target.add(customHeader); 
} 

@Override 
public void onHeaderClick(Header header, int position) { 
    if (header.id == R.string.customHeaderTitle) { 
     // Do something 
    } 
} 
2

홀로 스타일의 (비추천) PreferenceActivity와 헤더/조각을 XML이 아닌 순수 Java로 만들 수 있습니까?

onBuildHeaders() 메서드는 다른 방법으로 PreferenceActivity.Header 개체를 생성 할 수 있습니다. Header에 대한 문서는 약간 간결하기 때문에 XML을 통해 헤더를 수행하는 테스트 프로젝트를 만들고 결과로 생성되는 Header 객체의 내용을 덤프하여 올바르게 채울 수 있는지 확인할 수 있습니다.

프로그래밍 방식으로 헤더를 추가 및 제거 할 수 있습니까?

PreferenceActivity에는 invalidateHeaders() 방법이 있습니다. 소스 코드를 살펴보면 에 대한 호출과 마찬가지로 invalidateOptionsMenu()과 같은 새 목록을 제공하는 onBuildHeaders()에 대한 또 다른 호출이 호출되는 것처럼 보입니다.

관련 문제