Tim*_*Tim 2 android event-listener listener android-preferences
我正在尝试将个别侦听器添加到a中的项目中,ListPreference但我找不到正确的代码来执行此操作.
例如,假设我有一个需要设置区域的应用程序 .所以我有ListPreference三个选择; 美洲,亚洲,欧洲.
当我使用触控板滚动项目时,我希望他们在获得焦点时说出偏好的文本.
我确信API中的某个地方我可以为各个项添加一个监听器,但我找不到它.(继承自)中有一个setOnPreferenceClickListener(..)方法,但是当您选择实际的父偏好项时.ListPreferenceDialogPreference
我需要编写一个特殊的子类吗?
编辑
在深入研究之后,我想我需要进一步澄清我的问题.使用首选项时,您可以覆盖中的onPreferenceTreeClick (PreferenceScreen prefScreen, Preference pref)方法PreferenceActivity.这允许您拦截对首选项的任何点击.但是我想在弹出的实际对话框中添加一个监听器.以上例子中的"美洲,亚洲,欧洲"选项.因此,如果我选择或点击亚洲,我可以拦截它.
所以我的(精炼)问题是如何为这些单独的选项添加一个监听器.
干杯
小智 8
final ListPreference list = (ListPreference) preference;
list.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
public boolean onPreferenceChange(Preference preference, Object newValue) {
int index = list.findIndexOfValue(newValue.toString());
if (index != -1) {
Toast.makeText(getBaseContext(), list.getEntries()[index], Toast.LENGTH_LONG).show();
}
return true;
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7705 次 |
| 最近记录: |