В настоящее время я использую OnPreferenceChangeListener
, чтобы проверить, когда пользователь изменяет ListPreference в моем приложении (код ниже), и печатаю строку, чтобы проверить это.
final Preference audioCodec = findPreference("codec");
assert audioCodec != null;
audioCodec.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
System.out.println("Clicked");
return true;
}
});
Я попытался включить оператор if
ниже, чтобы проверить, когда пользователь изменит значение c.
if (newValue == "1") {
System.out.println("Clicked");
}
Однако это не работает. Насколько я понимаю, Object newValue
- это новая выбранная опция, поэтому в моем случае это значение Audio Code c 1, 2 или 3, которое равно 1, 2 или 3 соответственно. Я пытался привести newValue к int, но это также не сработало.
Я включил listEntries
и values
ниже.
<!-- Audio codec list -->
<string-array name="codecListArray">
<item>Audio codec 1</item>
<item>Audio codec 2</item>
<item>Audio codec 3</item>
</string-array>
<string-array name="codecListValues">
<item>1</item>
<item>2</item>
<item>3</item>
</string-array>
Я действительно застрял с этим так что любая помощь будет очень признательна, если разобраться в этом, то в конечном итоге мое приложение закончится sh. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.