- Forum-Beiträge: 614
13.02.2022, 20:54:25 via Website
13.02.2022 20:54:25 via Website
Hallo zusammen
Ich kommen nicht mehr weiter. Wenn ich meine Optionen aufrufe stürzt die App ab. Es hatte mal funktioniert aber jetzt läuft es nicht mehr obwohl ich nichts geändert habe.
Im Preferences.xml erscheint die folgende Fehlermeldung:
unexpectet resource type 'array' expectet string -> auf dieser Zeile android:entryValues="@array/WertAnzeige"
Ich habe eine Liste von drei Werten woraus ich wählen kann. Aber irgend wie wiel das Ding nicht mehr.
resources.xml:
<?xml version="1.0" encoding="utf-8"?>
android:id="@+id/pr_main"
xmlns:app="http://schemas.android.com/apk/res-auto">
<PreferenceCategory
android:id="@+id/pr_anzeige"
android:title="@string/lbl_anzeige">
<ListPreference
android:defaultValue="false"
android:entries="@array/TitelAnzeige"
android:entryValues="@array/WertAnzeige"
android:key="key_anzeige"
android:summary="@string/lbl_anzeigetitel"
android:title="@string/lbl_anzeigeopt" />
</PreferenceCategory>
<PreferenceCategory
android:id="@+id/pr_position"
android:title="@string/lbl_optgps">
<SwitchPreference
android:id="@+id/pr_switchpos"
android:defaultValue="false"
android:key="key_findpos"
android:title="@string/lbl_ein_aus"
app:summaryOff="@string/lbl_posoff"
app:summaryOn="@string/lbl_poson" />
<SwitchPreference
android:id="@+id/pr_switchgps"
android:defaultValue="false"
android:key="key_gps"
android:summaryOn="@string/lbl_gps_on"
android:title="@string/lbl_netz_gps"
app:summaryOff="@string/lbl_gps_off" />
</PreferenceCategory>
<PreferenceCategory
android:id="@+id/pr_distanz"
android:title="@string/lbl_distanz">
<EditTextPreference
android:id="@+id/pr_wertdistanz"
android:key="key_distanz"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="@string/txt_distanz"
app:summary="@string/lbl_defdistanz" />
</PreferenceCategory>
<PreferenceCategory
android:id="@+id/pr_sommerzeit"
android:title="@string/lbl_sommerzeit">
<SwitchPreference
android:id="@+id/pr_switchsommer"
android:defaultValue="false"
android:key="key_sommer"
android:summaryOff="@string/lbl_winzeit"
android:summaryOn="@string/lbl_somzeit"
android:title="@string/lbl_sommerfrage" />
</PreferenceCategory>
und mein SettingsFragment:
package ch.robbisoft.sun_app;
import android.content.SharedPreferences;
import android.os.Bundle;
import androidx.preference.ListPreference;
import androidx.preference.Preference;
import androidx.preference.Preference.*;
import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.PreferenceManager;
public class SettingsFragment extends PreferenceFragmentCompat{
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
addPreferencesFromResource(R.xml.preferences);
//Setzen der Anzeigeoptionen
ListPreference wer = findPreference("key_anzeige");
CharSequence[] entries = { getString(R.string.lbl_grad), getString(R.string.lbl_gradminuten), getString(R.string.lbl_gradminutensekunden) };
CharSequence[] entryValues = { "grd", "grdmin", "grdminsek" };
if(wer != null) {
wer.setEntries(entries);
wer.setEntryValues(entryValues);
}
//Anzeige aufbauen
OnPreferenceChangeListener preferenceChangeListener = new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if( newValue instanceof String ) {
if( preference != null ) {
preference.setSummary(newValue.toString());
return true;
}
}
return false;
}
};
//Eingabe anzeigen
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(getContext());
Preference distanz = findPreference("key_distanz");
if(distanz != null) {
distanz.setOnPreferenceChangeListener(preferenceChangeListener);
distanz.setSummary(pref.getString("key_distanz", "grd"));
}
Preference anzeige = findPreference("key_anzeige");
if(anzeige != null) {
anzeige.setOnPreferenceChangeListener(preferenceChangeListener);
anzeige.setSummary(pref.getString("key_anzeige", "1000"));
}
}
@Override
public void onResume() {
super.onResume();
}
@Override
public void onPause() {
super.onPause();
}
}
Wie kann ich das Problem lösen?
Gruss Renato
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.