我能將set-listener那一行分成小行麼?
這是我現在的代碼:
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.
可以寫一個函數,這個函數返回一個監聽器,當你想要寫類似的監聽器但是需要一些變化的時候非常有用,就像下邊這樣
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;
}
};
}