Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 8th, 2012  |  syntax: None  |  size: 2.92 KB  |  hits: 12  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. understand of PreferenceActivity
  2. public class SettingsActivity extends PreferenceActivity {
  3.  
  4. @Override
  5. protected void onCreate(Bundle savedInstanceState) {
  6.     super.onCreate(savedInstanceState);
  7.     /* Some initializations */
  8.     LinearLayout layout = new LinearLayout(this);
  9.     layout.setOrientation(LinearLayout.VERTICAL);
  10.  
  11.     ListView listView = new ListView(this);
  12.     listView.setId(android.R.id.list);
  13.     listView.setLayoutParams(new LinearLayout.LayoutParams(
  14.             LinearLayout.LayoutParams.FILL_PARENT,
  15.             LinearLayout.LayoutParams.WRAP_CONTENT, 1));
  16.     layout.addView(listView);
  17.  
  18.     this.setContentView(layout);
  19.     /* Preferences time! (we build the preferences) */
  20.     Preference version = getPreference("My School Manager", "Version 2.0",
  21.             null);
  22.     Preference author = getPreference("Author", "Simone Casagranda", null);
  23.     Preference marketLink = getPreference("Android market",
  24.             "View all my apps :)",
  25.             new Intent(Intent.ACTION_VIEW, Uri
  26.                     .parse("http://market.android.com/details?id="
  27.                             + "it.trento.alchemiasoft.casagranda.simone")));
  28.  
  29.     CheckBoxPreference check = new CheckBoxPreference(this);
  30.     check.setTitle("Checkbox");
  31.     check.setSummary("Example of checkbox");
  32.  
  33.     DialogPreference license = new MyDialogPreference(this, "License",
  34.             "This is the license for...bla bla");
  35.  
  36.     /* Now we add the preferences to the preference screen */
  37.     PreferenceScreen preferenceScreen = this.getPreferenceManager()
  38.             .createPreferenceScreen(this);
  39.     addPreferenceCategory(preferenceScreen, "Preferences Tutorial",
  40.             version, author, marketLink, check, license);
  41.     this.setPreferenceScreen(preferenceScreen);
  42. }
  43.  
  44. private boolean addPreferenceCategory(PreferenceScreen preferenceScreen,
  45.         String titleCategory, Preference... preferences) {
  46.     boolean addPreference = false;
  47.     for (Preference preference : preferences) {
  48.         if (preference != null)
  49.             addPreference = true;
  50.     }
  51.     if (addPreference) {
  52.         PreferenceCategory preferenceCategory = new PreferenceCategory(this);
  53.         preferenceCategory.setTitle(titleCategory);
  54.         preferenceScreen.addPreference(preferenceCategory);
  55.         for (Preference preference : preferences) {
  56.             if (preference != null)
  57.                 preferenceCategory.addPreference(preference);
  58.         }
  59.         return true;
  60.     } else
  61.         return false;
  62. }
  63.  
  64. private Preference getPreference(String title, String summary, Intent intent) {
  65.     Preference pref = new Preference(this);
  66.     pref.setTitle(title);
  67.     pref.setSummary(summary);
  68.     if (intent != null)
  69.         pref.setIntent(intent);
  70.     return pref;
  71. }
  72.  
  73. public class MyDialogPreference extends DialogPreference {
  74.     public MyDialogPreference(Context context, String title, String text) {
  75.         super(context, null);
  76.         this.setTitle(title);
  77.         this.setDialogMessage(text);
  78.     }
  79. }