Naar content
Trending apps
  • Google Duo: videogesprekken van hoge kwaliteit

  • Gmail

  • Maps: Navigatie en OV

  • WhatsApp Messenger

  • Messenger: gratis sms'en en videobellen

Trending games
  • Fortnite

  • Minecraft Earth

  • Dr. Mario World

  • Harry Potter: Wizards Unite

  • Breaking Bad: Criminal Elements

Trending smartphones
  • OnePlus Nord N10 5G

  • POCO X3

  • Google Pixel 5

  • Google Pixel 4a

  • OnePlus Nord

Nieuwste tablets
  • Samsung Galaxy Tab S6

  • Samsung Galaxy Tab A 10.5

  • Samsung Galaxy Tab S4

  • Samsung Galaxy Tab S3 9.7

  • Asus Zenpad 3S 10

Wij werken momenteel aan een nieuw forum voor Androidworld. Het is daarom momenteel niet mogelijk om te reageren of nieuwe topics aan te maken.

arnoldp

  • Lid sinds 10 juli 2010
  • Berichten 13
  • Reputatie 0
  • #1
  • 10 juli 2010
  • 18:24

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:

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

}

}

Bewerkt (22 april 2013 12:28)

Reageer

We werken momenteel hard aan een nieuw forum voor Androidworld. Het is daarom helaas niet mogelijk om op dit topic te reageren.