私はPreferenceActivity
を使用し、onPreferenceChange
メソッドを実装しています。 どのような設定が変更されたかを確認していますので、私はそれを実行できますが、.equals()
メソッドはfalseを返し続けます。私はアプリをデバッグし、両方のフィールドが文字列student_id
を返すことを示しています。何か不足していますか?この時点で は、変更がここpreference.getKey.equals()はfalseを返します
if(preference.getKey().equals(preference.getContext().getString(R.string.student_id_key))){
//do something here, but its returning false
}
onPreferenceChange
でstrings.xml
<string name="student_id_key" translatable="false">student_id</string>
コードからstudent_id_key
嗜好変化
から来ていることとして、xとyを示し、デバッガのスナップショットです2つの文字列
私は==
しかし、これは文字列の比較では、私の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" />
両方の値が本当に等しいことを証明するための努力を示すポストコードです。 – njzk2
'if'を逆にしようとします。これは' if(preference.getContext()。getString(R.string.student_id_key).equals(preference。 getkey())){} 'おそらく助け=) – spirit
' x.equals(y) 'を使わないのはなぜですか? – spirit