【发布时间】:2015-07-27 18:56:54
【问题描述】:
/**
* A preference change listener to resynchronize a contact list
*
*/
private static Preference.OnPreferenceClickListener resynchronizeContactsListener = new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
new AlertDialog() {
}
}
}
在上面这样的代码sn-p中,我需要调用一个非静态方法,或者创建一个AlertDialog()。由于侦听器是静态方法,因此我都很难做到。
例如,AlertDialog.Builder() 构造函数需要创建一个 android 上下文对象,但由于该方法是静态的,因此没有上下文。我考虑将上下文作为参数传递,但是我不确定在哪里这样做不会破坏我正在覆盖一个方法的事实。
提前致谢
【问题讨论】:
-
为什么它需要是静态的?
-
我不确定是否必须如此。我有一个 PreferencesActivity 并且需要监听对特定偏好的单击(或在另一个实例中更改)。到目前为止,我发现这样做的唯一方法是 Preference.OnPreferenceClickListener 或 Preference.onPreferenceChangeListener,它们都是静态的。如果我能找到另一种方法来解决我的问题
标签: java android static listener preferences