2010-10-21 7 views
0

Comment remplir dynamiquement PreferenceScreen (à partir de JAVA).Chargement de PreferenceScreen à partir de JAVA

J'ai un tableau de chaînes. Je souhaite que tous les éléments soient affichés dans l'écran de préférence secondaire avec la case à cocher.

Actuellement, j'ai des étiquettes

CheckBoxPreference
pour chaque élément dans le tableau de chaînes dans preferences.xml.

Des idées sur la façon de procéder.

Répondre

-1

Le code suivant est expliqué: Implémentation dynamique de l'option PreferenceActivity sur votre chemin.

public class DynamicPreference extends PreferenceActivity{ 


    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     LinearLayout layout = new LinearLayout(this); 
     layout.setOrientation(LinearLayout.VERTICAL); 

     ListView listView = new ListView(this); 

     listView.setId(android.R.id.list); 
     listView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT, 1)); 
     layout.addView(listView); 

     this.setContentView(layout); 

     Preference test1=getPrefereces("key1","Header Preference #1","Summary1",null); 

     Preference test2=getPrefereces("key2","Header Preference #2","Summary2",null); 


     PreferenceScreen prefScreen=this.getPreferenceManager().createPreferenceScreen(this); 

     addPreferenceCategory(prefScreen,"Category",test1,test2); 

     //addPreferenceCategory(prefScreen,"",test2); 
     this.setPreferenceScreen(prefScreen); 
      //add Intent to preferences 
     Preference prefereces=findPreference("key"); 
     prefereces.setIntent(new Intent(getApplicationContext(), Nextactivity.class)); 





    } 
    private boolean addPreferenceCategory(PreferenceScreen prefScreen, 
      String titleCategory, Preference... preferences) { 
     boolean addPreference = false; 
     for (Preference preference : preferences) { 
      if (preference != null) 
       addPreference = true; 
     } 
     if (addPreference) { 

      PreferenceCategory preferenceCategory = new PreferenceCategory(this); 

      preferenceCategory.setTitle(titleCategory); 

      prefScreen.addPreference(preferenceCategory); 
      for (Preference preference : preferences) { 
       if (preference != null) 
        preferenceCategory.addPreference(preference); 
      } 
      return true; 
     } else 
      return false; 
    } 
    private Preference getPrefereces(String key,String title, String summary, 
      Intent intent) { 
     // TODO Auto-generated method stub 
     Preference pref=new Preference(this); 
     pref.setTitle(title); 
     pref.setSummary(summary); 

     if(key!=null) 
     { 
      pref.setKey(key); 
     } 
     if(intent!=null) 
     { 
      pref.setIntent(intent); 
     } 
     return pref; 
    } 
} 
Questions connexes