簡體   English   中英

使用 OnPreferenceChangeListener 后如何檢查首選項的值?

[英]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 但這也不起作用。

我在下面包含了我的listEntriesvalues

 <!-- 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM