Preferences-Beispiel

A

AquaBall

Fortgeschrittenes Mitglied
2
Ich plag mich ziemlich mit den Preferences.

Auf PreferenceActivity | Android Developers hab ich mich zwar eingelesen, aber das Beispiel funktioniert nicht.
Spätestens bei 'PreferenceFragment' hilft kein 'import' und kein umbenennen mehr. Offensichtlich ist das erst ab HONEYCOMB definiert, wie ja auch im Text beschrieben ist. Was aber der Satz
If you are using PreferenceActivity in its old mode, the documentation there applies to the deprecated APIs here.
bedeutet, bzw. was ich nun tun kann/muss oder nicht, kapier ich schlichtweg nicht.

Auch sind mir die Dateien nicht klar:
Im Code ist einerseits von R.xml.preferences_header und andererseits R.xml.fragmented_preferences und R.xml.fragmented_preferences_inner und ... die Rede, aber nur 2 Inhalte angegeben: vermutlich "preference_headers resource" und mit dem zweiten:
The first header is shown by Prefs1Fragment, which populates itself from the following XML resource:
kann ich auch nichts anfangen. Wie heißt die Datei? Wo bekommt er die anderen R.xml.XXX her? Was ist der Inhalt?


Ich bin aber aus KompatibilitätsGründen noch an Android 2.33 gebunden.
Das Beispiel umzubasteln ist mir also nicht gelungen.

Nun gut, mit Newest Questions - Stack Overflow hab ich dann eine Version zum Laufen gebracht: (addPreferencesFromResource(R.xml.einstellungen))

Nun wollte ich das noch dynamisch statt statisch machen:
Code:
ListPreference listPreferenceCategory = (ListPreference) findPreference("default_category");
if (listPreferenceCategory != null) {
    ArrayList<Category> categoryList = getCategories();
    CharSequence entries[] = new String[categoryList.size()];
    CharSequence entryValues[] = new String[categoryList.size()];
    int i = 0;
    for (Category category : categoryList) {
        entries[i] = category.getCategoryName();
        entryValues[i] = Integer.toString(i);
        i++;
    }
    listPreferenceCategory.setEntries(entries);
    listPreferenceCategory.setEntryValues(entryValues);
}
scheitere hier aber auch wieder, dass das Beispiel nicht funktioniert weil getCategories() nicht erkannt wird.
(und ich natürlich nicht selbst schreiben kann.)

Wie kann ich ein Beispiel finden, das zu meiner Umgebung passt?
und Wie erkenne ich auf Android Developers, ob ein Beispiel zu meiner Umgebung passt?
 
Deine Umgebung? Nunja, ich denke das die meisten Beispiele für Eclipse sind, da dort die Precompiler schon eine menge selbst machen. Ich weiß nicht wie es inzwischen mit Netbeans ist. Vielleicht geht das auch inzwischen ganz gut.

Ansonsten: schau mal hier
 
Unicate schrieb:
Deine Umgebung? Nunja, ich denke das die meisten Beispiele für Eclipse sind
Ja, ich arbeite auf Eclipse.
aber vielleicht wurde folgende Zeile in deinen ForumReader nicht übertragen:
Code:
Ich bin aber aus KompatibilitätsGründen noch an Android 2.33 gebunden.
Wie erkenne ich auf AndroidDevelopers, ob ein Beispiel zu dieser Umgebung passt?
Unicate schrieb:
Ich schick dir meine History, wieviel Seiten ich in den letzten ich in den letzten Tagen besucht UND durchgelesen + SourcsCode ausprobiert habe:

Loading . . . . . . . . . . . . .
... aborted.
Sorry, buffer overflow. Ich glaub ich muss doch auf 128 Bit Adressgröße erweitern.
Danke für deine konstruktive Hilfe.
 
Nicht gleich frech werden!

Ich bin aber aus KompatibilitätsGründen noch an Android 2.33 gebunden. Wie erkenne ich auf AndroidDevelopers, ob ein Beispiel zu dieser Umgebung passt?
Das API Level steht bei AndroidDevelopers immer mit dabei.

Und wenn du mal google verwendet hättest dann hättest du das hier als ersten Link gefunden:
Android Preferences | Kaloer.com

Da ist ein Beispiel inklusive xml und java dabei.


Wenn das nicht weiterhilft, dann musst du mal dein Problem definieren.

Beschreibe was du machen willst und was nicht funktioniert!
 
Zuletzt bearbeitet:
Ich werd sicher nicht frech, sondern bin immer um freundlichen Ton im Forum bemüht.

Deshalb geh ich auch davon aus, dass dein Tip
Unicate schrieb:
sehr hilfreich und absolut freundlich gemeint ist. Dafür hab ich micht bedankt.

Nochmal zu meinen Problem, falls es in meinem 1. Post nicht klar genug beschrieben ist.
Ich arbeite mit Android 2.33 (API-Level 10, Danke für den Link).
Das Beispiel PreferenceActivity | Android Developers gilt "PreferenceActivity; Since: API Level 1".
Aber ich bring es nicht zum laufen. (Aus dem Text les' ich raus, dass es ab HC gilt.)

Nun frag ich mich:
Wie kann ich ein Beispiel finden, das zu meiner Umgebung passt?
und Wie erkenne ich auf Android Developers, ob ein Beispiel zu meiner Umgebung passt, bzw. welcher Teil nicht?
 
Moin,
hast du dir dies Beispiel schon einmal angeschaut? Android Development Tutorial

Wie erkenne ich auf Android Developers, ob ein Beispiel zu meiner Umgebung passt, bzw. welcher Teil nicht?
Oben rechts auf der Seite kannst du sehen, ab welchen API lvl diese Klasse grundsätzlich verfügbar ist. Innerhalb der Seite steht zu jeder Methode oder Konstante rechts immer, ab welchem API lvl diese verfügbar sind.

MfG
 
  • Danke
Reaktionen: AquaBall
Also ich denke ich verstehe was du meinst. Du willst wissen welche Klassen/Methoden eines Beispiels evtl nicht in 2.3.3 verfügbar sind.

Also im einfachsten Fall stellst du dein Projekt mal auf Android API 10 um und versuchst das Beispiel nach zu bauen. (Ich entwickle prinzipiell auf dem von mir gegebenen minimum Level, damit ich später nicht gefahr laufe Methoden zu verwenden, die es evtl in meinen minimum noch nicht gibt.)

Falls es dann in deinem Beispiel Methoden gibt die nicht erkannt werden (Eclipse kann das sehr gut), dann sind diese in deiner verwendeten API noch nicht vorhanden und du musst einen Workaround finden.
Manchmal hilft es die neu hinzugekommenden Methoden aus den neueren Android-Sourcen zu kopieren.(Ich hatte da mal 1-2 Fälle wo das ging)


Abwärtskompatibel sollten alle Beispiele sein (Ausnahme ist hier die Contact API, die sich von 1.6 => 2.0 so verändert hat, das keine Abwärtskompatiblität gegeben ist).
 
  • Danke
Reaktionen: AquaBall
Sentence schrieb:
Moin,
hast du dir dies Beispiel schon einmal angeschaut? Android Development Tutorial

Oben rechts auf der Seite kannst du sehen, ab welchen API lvl diese Klasse grundsätzlich verfügbar ist. Innerhalb der Seite steht zu jeder Methode oder Konstante rechts immer, ab welchem API lvl diese verfügbar sind.

MfG

Danke. Endlich bin ich ein kleines, aber wesentliches Stücklein weiter.
Dieses " zu jeder Methode" habe ich echt immer übersehen, weil es so grau und unscheinbar ist.
Danke, dass du mich jetzt mit der Nase darauf hingestoßen hast.
Ich hatte immer nur die API-Verfügbarkeit der Klasse in der 1. Ziele wahrgenommen.
Jetzt hab ich auch den "Filter by API-Level" kapiert.
Damit kann ich verstehen und verschmerzen, dass DIESES Code-Beispiel bei mir halt nicht funktionieren kann.

Dein Link ist auch sehr hilfreich, weil er einen Überblick und Verständnis für die Zusammenhänge auf den Punkt bringt. Und die sehr gut lesbaren Beispiele verlieren sich nicht in den Details. Danke sehr.
 
Unicate schrieb:
Also ich denke ich verstehe was du meinst. Du willst wissen welche Klassen/Methoden eines Beispiels evtl nicht in 2.3.3 verfügbar sind.
Du beschreibst genau mein Problem.
Also im einfachsten Fall stellst du dein Projekt mal auf Android API 10 um und versuchst das Beispiel nach zu bauen.
Projekt umstellen brauch ich nicht, weil ich ja auf diesem Level arbeite.
(Ich entwickle prinzipiell auf dem von mir gegebenen minimum Level, damit ich später nicht gefahr laufe Methoden zu verwenden, die es evtl in meinen minimum noch nicht gibt.)
Eben. Ich auch. (Vermutlich haben alle ihre Vorgaben/Rahmenbedingungen.)
Falls es dann in deinem Beispiel Methoden gibt die nicht erkannt werden (Eclipse kann das sehr gut), dann sind diese in deiner verwendeten API noch nicht vorhanden und du musst einen Workaround finden.
Im Endeffekt also: Rumprobieren.
Manchmal hilft es die neu hinzugekommenden Methoden aus den neueren Android-Sourcen zu kopieren.(Ich hatte da mal 1-2 Fälle wo das ging)
Auf dem KnowHow bin ich noch nicht, solange ich noch Code-Beispiele suchen muss.

Danke für die Tips.
 

Ähnliche Themen

numanoid
Antworten
4
Aufrufe
1.549
numanoid
numanoid
T
Antworten
1
Aufrufe
856
jogimuc
J
T
Antworten
3
Aufrufe
1.070
jogimuc
J
Zurück
Oben Unten