我可以将侦听器生产线分成较小的部分吗?
这是我的代码:
protected void onCreate(Bundle savedInstanceState) {
Preference button = (Preference)getPreferenceManager().findPreference("exitlink");
button.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference arg0) {
finish();
return true;
}
});
我希望这看起来像:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Preference button = (Preference)getPreferenceManager().findPreference("exitlink");
if(button != null) {
button.setOnPreferenceClickListener(onPreferenceClick);
}
}
public boolean onPreferenceClick(Preference arg0) {
finish();
return true;
}
最佳答案
您上面的代码几乎已经可以使用了。使用上面的代码进行此微小更改:
button.setOnPreferenceClickListener(this);
然后,您只需让您的类实现所需的特定接口即可,在本例中为
Preference.OnPreferenceClickListener
。除了dmon在下面关于为此使用变量的建议外,还可以编写一个返回侦听器的函数,当您希望具有类似的侦听器但稍有变化时,该函数非常有用,例如下面的示例。
private Preference.OnPreferenceClickListener getListener(int listenerId) {
return new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference arg0) {
Log.i("MyTag", "Listener " + listenerId + " invoked!");
finish();
return true;
}
};
}