如何为列表首选项中的选项设置 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;
}
});
我有一个列表首选项,允许用户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;
}
});