Preferences zeigt nichts

  • Antworten:4
Robbiani Renato
  • Forum-Beiträge: 614

25.01.2022, 17:37:32 via Website

Hallo zusammen

Zu meiner App möchte ich eine Preferenc Seite daratellen. Doch diese zeigt einfach nichts an. Die Seite bleit weiss. Die App stürzt auch nicht ab.

Als erstes habe ich eine Activity erstellt, welche ich aus der Main Activity aufrufe.

val intent = Intent(ac_ctx, SettingActivity::class.java)
            OptionenHorcher.launch(intent)

package ch.robbisoft.klassennotfall

import android.os.Bundle
import android.os.PersistableBundle
import androidx.appcompat.app.AppCompatActivity

class SettingActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
    super.onCreate(savedInstanceState, persistentState)
    supportFragmentManager.beginTransaction().replace(android.R.id.content, SettingsFragment()).commit()
}

}

In dieser Activity rufe ich dann meine SettingsFragment auf.

package ch.robbisoft.klassennotfall

import android.os.Bundle
import androidx.preference.PreferenceFragmentCompat

class SettingsFragment : PreferenceFragmentCompat() {

override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
    addPreferencesFromResource(R.xml.preferences)
}

}

Meine Prferences habe ich wie folgt aufgebaut.

<?xml version="1.0" encoding="utf-8"?>

xmlns:app="http://schemas.android.com/apk/res-auto">

<PreferenceCategory
    android:title="Preference category"
    app:key="key_title"
    app:title="@string/lbl_settingtitle">

    <EditTextPreference
        android:defaultValue="false"
        android:key="key_eins"
        android:selectAllOnFocus="true"
        android:singleLine="true"
        android:summary="@string/lbl_aufforderung"
        android:title="@string/lbl_tab_eins" />
    <EditTextPreference
        android:defaultValue="false"
        android:key="key_zwei"
        android:selectAllOnFocus="true"
        android:singleLine="true"
        android:summary="@string/lbl_aufforderung"
        android:title="@string/lbl_tab_zwei" />
    <EditTextPreference
        android:defaultValue="false"
        android:key="key_drei"
        android:selectAllOnFocus="true"
        android:singleLine="true"
        android:summary="@string/lbl_aufforderung"
        android:title="@string/lbl_tab_drei" />
</PreferenceCategory>

Was mache ich falsch, dass nichts angezeigt wird?

Gruss Renato

Kommentieren
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

25.01.2022, 17:43:38 via Website

NAch dem Tutorial:
https://developer.android.com/guide/topics/ui/settings#kotlin
Hast du den rootKey vergessen zu übergen im Fragment.

setPreferencesFromResource(R.xml.preferences, rootKey)

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Jokel
Kommentieren
Robbiani Renato
  • Forum-Beiträge: 614

26.01.2022, 21:55:11 via Website

Ciao Pascal

Danke für deine schnelle Antwort. Dies ist leider nicht die richtige Lösung. Ich denke, dass es eher an diesem Problem liegt :

supportFragmentManager.beginTransaction().replace(android.R.id.content, SettingsFragment()).commit()

Bei mir steht "android.R.id.content" und in deinem Beispiel "R.id.settings_container". Also benötige ich ein Containter.

Aber woher kriege ich diesen Container?

Gruss Renato

Hilfreich?
Kommentieren
Robbiani Renato
  • Forum-Beiträge: 614

26.01.2022, 21:57:47 via Website

Hallo zusammen

Ich habe es nun mit einer Activity mit einem Layout gemacht, ohne Fragment. Vielleicht nicht die eleganteste Lösung, aber es funktioniert.

Gruss Renato

Hilfreich?
Kommentieren
Robbiani Renato
  • Forum-Beiträge: 614

27.01.2022, 17:15:36 via Website

Hallo zusammen

Obige Meldung ist falsch.

Ich habe die Preference neu Angelegt mit dem Menü :

Rechte Maustaste auf java danach new->activity->settingsactivity dann macht er alles selbständig und die PreferenceFragment schreibt er untern in die SettingsActivity.

Gruss Renato

Hilfreich?
Kommentieren