- understand of PreferenceActivity
- public class SettingsActivity extends PreferenceActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- /* Some initializations */
- 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);
- /* Preferences time! (we build the preferences) */
- Preference version = getPreference("My School Manager", "Version 2.0",
- null);
- Preference author = getPreference("Author", "Simone Casagranda", null);
- Preference marketLink = getPreference("Android market",
- "View all my apps :)",
- new Intent(Intent.ACTION_VIEW, Uri
- .parse("http://market.android.com/details?id="
- + "it.trento.alchemiasoft.casagranda.simone")));
- CheckBoxPreference check = new CheckBoxPreference(this);
- check.setTitle("Checkbox");
- check.setSummary("Example of checkbox");
- DialogPreference license = new MyDialogPreference(this, "License",
- "This is the license for...bla bla");
- /* Now we add the preferences to the preference screen */
- PreferenceScreen preferenceScreen = this.getPreferenceManager()
- .createPreferenceScreen(this);
- addPreferenceCategory(preferenceScreen, "Preferences Tutorial",
- version, author, marketLink, check, license);
- this.setPreferenceScreen(preferenceScreen);
- }
- private boolean addPreferenceCategory(PreferenceScreen preferenceScreen,
- 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);
- preferenceScreen.addPreference(preferenceCategory);
- for (Preference preference : preferences) {
- if (preference != null)
- preferenceCategory.addPreference(preference);
- }
- return true;
- } else
- return false;
- }
- private Preference getPreference(String title, String summary, Intent intent) {
- Preference pref = new Preference(this);
- pref.setTitle(title);
- pref.setSummary(summary);
- if (intent != null)
- pref.setIntent(intent);
- return pref;
- }
- public class MyDialogPreference extends DialogPreference {
- public MyDialogPreference(Context context, String title, String text) {
- super(context, null);
- this.setTitle(title);
- this.setDialogMessage(text);
- }
- }