[英]How do I check the value of a preference after using OnPreferenceChangeListener?
目前,我正在使用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
語句來檢查用戶何時更改為特定值。
if (newValue == "1") {
System.out.println("Clicked");
}
但是,這不起作用。 據我了解, Object newValue
是新選擇的選項,因此在我的情況下,音頻編解碼器 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>
我真的堅持這一點,所以任何幫助都將不勝感激,弄清楚這一點幾乎可以完成我的應用程序。 如果您需要更多信息,請告訴我。
首先,您的 if 語句檢查是錯誤的,因為新值是 object:
做這個:
String value = (String)newValue;
if (value.equals("1")) {
System.out.println("Clicked");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.