2012-11-19 13 views
7

Seguito diversi suggerimenti ma non riesco a capire,
come utilizzare addPreferencesFromResource(R.xml.preferences) perché obsoleto.come usare addPreferencesFromResource per Android 2.X?

Il modo migliore è quello di utilizzare i fragment ma frammenti sono disponibili solo dopo 3.0, ho bisogno di fare per la versione Android 2.x

Da che parte ti seguirò?

+0

come l'hai risolto @PolHallen? – gumuruh

risposta

4

In Android, "deprecato" significa "abbiamo un'altra soluzione che pensiamo che dovresti prendere in considerazione". In particolare, per situazioni come questa, non hai altra scelta che usare addPreferencesFromResource() su Android 2.x, come onBuildHeaders() (l'approccio utilizzato in API 11+) non esiste.

È possibile creare codice che supporta sia:

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); 
    } 
} 

Qui, usiamo onBuildHeaders() per livello di API 11+ e addPreferencesFromResource() il livello di API 10 e al di sotto. Here is the complete sample project da cui è stato estratto questo codice.

Problemi correlati