如何为列表首选项中的选项设置 onClick 侦听器?

How can I set onClick listeners for the options in my List preference?

我有一个列表首选项,允许用户select他们希望在我的录音机android应用程序中使用哪个音频编解码器。

我想为列表中的每个项目设置一个 onClick 侦听器,因为当它被 selected 时,我需要访问我的主 activity 并更改 MediaRecorder 的设置。目前,我有一个 onClick 侦听器,它仅在 "Audio Codec" 选项本身为 selected 时激活。

Here is my preference activity 以下是 onClick 监听器的当前代码。

final Preference audioCodec = findPreference("codec");
   audioCodec.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
      @Override
      public boolean onPreferenceClick(Preference preference) {
          System.out.println("Clicked");
          return true;
        }
    });
}

以下是我希望分配给 onClick 侦听器的值,而不仅仅是标题 "Audio Codec"。这可能吗?

<!-- Audio codec list  -->
<string-array name="codecListArray">
    <item>Audio codec 1</item>
    <item>Audio codec 2</item>
    <item>Audio codec 3</item>
</string-array>

如果您需要更多屏幕截图或信息,请告诉我,谢谢。

您可以使用每次更改首选项时触发的 OnPreferenceChangeListener

audioCodec.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {    
    @Override
    public boolean onPreferenceChange(Preference preference, Object newValue) {
        // newValue is the value you choose
        return true;
    }
});