Ik ben op dit moment bezig met een project waarbij een schoolrooster wordt getoond op het scherm. Daarbij heb ik een aantal settings in een PreferenceActivity. Nu moet ik telkens als ik een ListPreference open naar het internet verbinden en wat gegevens ophalen. Omdat dit flink wat data is, wil ik dit dus niet tijdens het laden van de Activity doen, maar nadat je op de ListPreference hebt geklikt.
Daar gebruik ik nu de OnPreferenceClickListener voor, die voert ook de acties uit, maar het updaten van de ListView gebeurt pas bij de volgende klik.
Heeft iemand suggesties?
Mijn huidige class ziet er zo uit:
public class SettingsActivity extends PreferenceActivity {
@Override public boolean onPreferenceClick(Preference preference) { HTMLScraper s = new HTMLScraper(); Vector<String> jaren = s.getJaren(KeyStore.getUsername(), KeyStore.getPassword()); CharSequence[] jarenOptions = new CharSequence[jaren.size()];
int i = 0; Iterator<String> jarenIterator = jaren.iterator(); while(jarenIterator.hasNext()) {
String jaar = jarenIterator.next(); jarenOptions[i] = jaar;
Beste AW'ers,
Ik ben op dit moment bezig met een project waarbij een schoolrooster wordt getoond op het scherm. Daarbij heb ik een aantal settings in een PreferenceActivity. Nu moet ik telkens als ik een ListPreference open naar het internet verbinden en wat gegevens ophalen. Omdat dit flink wat data is, wil ik dit dus niet tijdens het laden van de Activity doen, maar nadat je op de ListPreference hebt geklikt.
Daar gebruik ik nu de OnPreferenceClickListener voor, die voert ook de acties uit, maar het updaten van de ListView gebeurt pas bij de volgende klik.
Heeft iemand suggesties?
Mijn huidige class ziet er zo uit:
[CODE]
public class SettingsActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try {
PreferenceScreen root = getPreferenceManager().createPreferenceScreen(this);
PreferenceCategory periode = new PreferenceCategory(this);
periode.setTitle(R.string.settingsCategoryPeriode);
root.addPreference(periode);
ListPreference jaargang = new ListPreference(this);
jaargang.setTitle(R.string.settingsJaargang);
jaargang.setEntries(new CharSequence[0]);
jaargang.setEntryValues(new CharSequence[0]);
jaargang.setOnPreferenceClickListener(new ListPreference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
HTMLScraper s = new HTMLScraper();
Vector<String> jaren = s.getJaren(KeyStore.getUsername(), KeyStore.getPassword());
CharSequence[] jarenOptions = new CharSequence[jaren.size()];
int i = 0;
Iterator<String> jarenIterator = jaren.iterator();
while(jarenIterator.hasNext()) {
String jaar = jarenIterator.next();
jarenOptions[i] = jaar;
i++;
}
((ListPreference)preference).setEntryValues(jarenOptions);
((ListPreference)preference).setEntries(jarenOptions);
return true;
}
});
periode.addPreference(jaargang);
setPreferenceScreen(root);
} catch (Exception e) {}
}
}
[/CODE]
Beste AW'ers,
Ik ben op dit moment bezig met een project waarbij een schoolrooster wordt getoond op het scherm. Daarbij heb ik een aantal settings in een PreferenceActivity. Nu moet ik telkens als ik een ListPreference open naar het internet verbinden en wat gegevens ophalen. Omdat dit flink wat data is, wil ik dit dus niet tijdens het laden van de Activity doen, maar nadat je op de ListPreference hebt geklikt.
Daar gebruik ik nu de OnPreferenceClickListener voor, die voert ook de acties uit, maar het updaten van de ListView gebeurt pas bij de volgende klik.
Heeft iemand suggesties?
Mijn huidige class ziet er zo uit: