2012-11-19 12 views
7

Powtórzyło się kilka porad, ale nie rozumiem,
jak używać addPreferencesFromResource(R.xml.preferences), ponieważ jest przestarzałe.jak korzystać z addPreferencesFromResource dla Androida 2.X?

Najlepszym sposobem jest użycie fragment ale fragmenty są dostępne tylko później 3,0, muszę zrobić dla systemu Android w wersji 2.x

Którędy będę śledzić?

+0

jak to rozwiązałeś @PolHallen? – gumuruh

Odpowiedz

4

W systemie Android wyrażenie "przestarzałe" oznacza "mamy inne rozwiązanie, które naszym zdaniem powinno się wziąć pod uwagę". W szczególności w sytuacjach takich jak ten nie ma się innego wyboru, niż użycie addPreferencesFromResource() na systemie Android 2.x, ponieważ onBuildHeaders() (metoda stosowana na poziomie interfejsu API 11+) nie istnieje.

Można tworzyć kod, który obsługuje zarówno:

public class EditPreferences extends SherlockPreferenceActivity { 
    @SuppressWarnings("deprecation") 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    if (Build.VERSION.SDK_INT<Build.VERSION_CODES.HONEYCOMB) { 
     addPreferencesFromResource(R.xml.preferences); 
     addPreferencesFromResource(R.xml.preferences2); 
    } 
    } 

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

Tu używamy onBuildHeaders() na poziomie API 11+ i addPreferencesFromResource() API na poziomie 10 i poniżej. Here is the complete sample project, z którego pobrany został ten kod.

Powiązane problemy