Android Settings Fragment

  • 9 Antworten
  • Letztes Antwortdatum
S

-Struct-

Neues Mitglied
0
Hallo =)

Ich sitze seit ein paar Stunden an meinen Android Settings dran, aber komme nicht richtig weiter. Ich folge diesem Guide bzw. Git Projekt:
https://xisberto.wordpress.com/2014...nd-preferenceactivity-headers-with-appcompat/
https://github.com/xisberto/PreferencesCompat

Dafür habe ich eine PreferencesActivity, ein SettingsFragment und die dazugehörigen xml Files headers, pref_advanced und pref_general.

Wenn ich in meine Settings gehe, dann sehe ich wie im Guide auch General und Advanced. Ich möchte aber folgendes:
settings-headers-handset.png

Quelle: Settings | Android Developers

Ich möchte auf meiner ersten Settings Seite oben General, gefolgt von ein paar Auswahlmöglichkeiten, die dann einen neuen Screen öffnen und darunter Advanced, welches auch nur als Überschrift dient und darunter ebenfalls weitere Auswahlmöglichkeiten bietet.

Hat jemand einen Tipp, wie ich das umsetzen kann?
 
Hallo,
gibt es spezielle Gründe für das Fragment? Wenn du die App nur auf Telefonen darstellen willst, reicht es vollkommen aus das über einen (bzw. mehrere) PreferenceScreen darzustellen.
 
Ja hab alles auf Fragments umgestellt und möchte auch dabei bleiben. Es klappt alles soweit... ABER das hier:

Settings | Android Developers

Ist glaub von den Machern dieser Seite mit Photoshop eingefügt worden :unsure:

Ich finde nirgends was im Netz, wie man diese Zwischenüberschriften hin bekommt.

Also wie bei meinem Anfangsbeitrag aufm Screenshot zu sehen, diese Zwischenüberschriften "WIRELESS & NETWORKS" und "DEVICE"

Hat gar niemand eine Idee? :confused2:
 
Вфы ыеуре вщср путфг гтеук вуь Ишдв щвук_ Руфвукы!

Der ursprüngliche Beitrag von 00:54 Uhr wurde um 00:55 Uhr ergänzt:

Sorry Tastatur nciht umgestellt!!!. Das steht doch genau unter dem Bild: Das sind Header!

Der ursprüngliche Beitrag von 00:55 Uhr wurde um 01:00 Uhr ergänzt:

Ah nee ok hier das ist das Was du suchst: in der Header deklaration gibt es diesen Tag:
Code:
android:summary="@string/prefs_summ_category_one"
Das ist glaub ich genau das was du suchst...also es sieht mir sehr danach aus :)
Das wäre dann wohl die Gruppierung der Header in Kategorien also jeder Header aht einen Titel und eine Katagorie zu der er gehört...obwohkl cih damit keine Erfahrung habe bin cih mir relativ sicher

Edit: nchmal bisschen eingelesen:

Steht gleich am Anfang was das ist und dort ist auch ien Link zu dieser Seite:

http://developer.android.com/reference/android/preference/PreferenceCategory.html

unter ->Summary->Inherited XML Attributes gibt es diese 2 Links wo man die XML Attribute lesen kann:

http://developer.android.com/reference/android/preference/PreferenceGroup.html
http://developer.android.com/reference/android/preference/Preference.html

und da steht im 2. Link

android:summary

The summary for the Preference in a PreferenceActivity screen.

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol summary.

Aber die XML Attribute verstehen sich ja fast schon von alleine beim lesen
Cheers :)
 
Zuletzt bearbeitet:
Moin zusammen,

ne das mit der Summary ist was anderes. Ich zeig es dir gerne anhand eines Screenshots:

h4k8kl4p.jpg



Mit dem dazugehörenden Code:

Code:
<preference-headers
    xmlns:android="http://schemas.android.com/apk/res/android">
    <header
        android:fragment="com.example.seb.testsettingsproject.UpdatePreferenceFragment"
        android:title="@string/settings_update"
        android:summary="prefs_summ_category_one">
    </header>
    <header
        android:fragment="com.example.seb.testsettingsproject.DisplayPreferenceFragment"
        android:title="@string/settings_display"
        android:summary="prefs_summ_category_two">
    </header>
    <header
        android:fragment="com.example.seb.testsettingsproject.NotifyPreferenceFragment"
        android:title="@string/settings_notify"
        android:summary="prefs_summ_category_three">
    </header>

</preference-headers>

Ich möchte aber einfach nur Überschriften über den Headers oder zwischen Headers
 
Zuletzt bearbeitet:
OK hab mich geirrt

Das sind die ganz normalen Titel einer PreferenceCategory.
Diese beinhalten deine Preferences.

Siehe meine vorigen links und diese Seite

Settings | Android Developers

Heißt kurz gesagt deine preferences haben einen title und die Kategorie in der du sie gruppiert haben ebenso einen titel(<- deine gesuchten headlines)
 
Ja, aber bei den Headers kann ich diesen Categorie Titel nicht angeben.

Ich habe eine PreferenceActivity:

Code:
public class PreferencesActivityScenario3 extends PreferenceActivity {

    /**
     * Populate the activity with the top-level headers.
     */
    @Override
    public void onBuildHeaders(List<Header> target) {
        loadHeadersFromResource(R.xml.preferences_headers_scenario3, target);
    }

    @Override
    protected boolean isValidFragment (String fragmentName) {
        return true;
    }
}

mit der dazugehörigen XML. Diese wird mir angezeigt und diese beinhaltet die Headers, welche zu weiteren Settings Fragmenten verlinkt:

Code:
<preference-headers
xmlns:android="http://schemas.android.com/apk/res/android">

<!-- WIRELESS and NETWORKS
<header android:title="@string/header_category_wireless_networks" />  -->

<header
    android:fragment="com.example.seb.testsettingsproject.UpdatePreferenceFragment"
    android:title="@string/settings_update"
    android:summary="prefs_summ_category_one">
</header>
<header
    android:fragment="com.example.seb.testsettingsproject.DisplayPreferenceFragment"
    android:title="@string/settings_display"
    android:summary="prefs_summ_category_two">
</header>
<header
    android:fragment="com.example.seb.testsettingsproject.NotifyPreferenceFragment"
    android:title="@string/settings_notify"
    android:summary="prefs_summ_category_three">
</header>

</preference-headers>

Dieses xml File mit den Headers sieht so aus:

h4k8kl4p.jpg



....

Soweit so gut. Nun siehst du ja anhand der xml, dass ich 3 weitere Fragmente habe. Quasi Unter-Settings oder Subsettings. Als Beispiel hier ein XML von Notifications:

Code:
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <PreferenceCategory
        android:title="pref_sms_storage_title"
        android:key="pref_key_storage_settings">

        <CheckBoxPreference
            android:key="pref_key_auto_delete"
            android:summary="pref_summary_auto_delete"
            android:title="pref_title_auto_delete"
            android:defaultValue="false" />
        <Preference
            android:key="pref_key_sms_delete_limit"
            android:dependency="pref_key_auto_delete"
            android:summary="pref_summary_delete_limit"
            android:title="pref_title_sms_delete" />
        <Preference
            android:key="pref_key_mms_delete_limit"
            android:dependency="pref_key_auto_delete"
            android:summary="pref_summary_delete_limit"
            android:title="pref_title_mms_delete"  />
    </PreferenceCategory>

</PreferenceScreen>

Hier kann man einen PreferenceCategory Title angeben: siehe Zeile 3:
android:title="pref_sms_storage_title"

Allerdings wird dieser dann nicht in meinen Anfangsbildschirm der Settings (siehe oben) angezeigt, sondern wenn ich auf Notifications klicke und die Subsettings aufrufe. Da ist dann ein Titel.
 
Moin,

erstmal Danke für deine Hilfe. Scheint ein Problem zu sein, dass nicht viele Leute haben bzw interessiert.

So wie in deinem Link hab ich es momentan auch implementiert. Es sieht dann allerdings überhaupt nicht so aus wie auf den Screenshots. Dort ist die Schrift ja kleiner und hat sogar ne Underline.

Wenn man es so macht wie bei diesem Projekt, dann ist es einfach n normaler Header, aber ohne Verlinkung.

Aber ich werde das jetzt so machen. Gibt ja scheinbar keine offizielle Lösung. Hätte mich nur interessiert, wie die bei Android Developers das dann gemacht haben. Vielleicht Photoshop :winki:
 
Es wurde laut einem Thread auf SO genauso gemacht wie Android es gemacht hat.
Dort wurde das notwenidge von dem Autor extrahiert und umgesetzt
 

Ähnliche Themen

M
Antworten
21
Aufrufe
1.360
swa00
swa00
Mr-Fisch
Antworten
5
Aufrufe
964
migi01
migi01
Mr-Fisch
Antworten
8
Aufrufe
1.006
Mr-Fisch
Mr-Fisch
M
Antworten
9
Aufrufe
789
mkuz24
M
A
Antworten
5
Aufrufe
693
swa00
swa00
Zurück
Oben Unten