Ich verwende eine PreferenceActivity
und implementiere die onPreferenceChange
Methode. Ich überprüfe, welche Vorliebe geändert wird, also kann ich es handeln, jedoch gibt die .equals()
Methode falsch zurück. Ich habe die App debuggt und es zeigt, dass beide Felder die Zeichenfolge student_id
zurückgeben. Fehle ich etwas? An diesem Punkt ist der Wechsel von der Änderung in onPreferenceChange
preferences.getKey.equals() gibt false zurück
if(preference.getKey().equals(preference.getContext().getString(R.string.student_id_key))){
//do something here, but its returning false
}
Hier ist eine Momentaufnahme des Debuggers, zeigt x und y als die
Von strings.xml
<string name="student_id_key" translatable="false">student_id</string>
Code student_id_key
Präferenz kommen zwei Zeichenfolgen
Ich habe versucht,zu verwendenaber mit dem gleichen Ergebnis
Dies ist der Auszug des Elements aus meinem prefs.xml
<EditTextPreference
android:capitalize="words"
android:defaultValue="@string/student_id_default"
android:inputType="textCapWords"
android:hint="@string/student_id_hint"
android:key="@string/student_id_key"
android:maxLines="1"
android:maxLength="9"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="@string/pref_title_display_name" />
Postleitzahl, die Ihre Bemühungen zu beweisen, dass beide Werte sind in der Tat gleich – njzk2
versuchen, Ihre 'if', wie dies 'if (preference.getContext(). GetString (R.string.student_id_key) .equals (Präferenz. getKey())) {} 'vielleicht hilft es =) – spirit
warum verwenden Sie nicht' x.equals (y) '? – spirit