我能将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;
}
2 回答
守着星空守着你
TA贡献1799条经验 获得超8个赞
上边的你的代码基本是可以的。给你上边的代码做个小改动:
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; } }; }
函数式编程
TA贡献1807条经验 获得超9个赞
你可以在你的方法外创建一个变量:
private Preference.OnPreferenceClickListener listener = new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference arg0) { finish(); return true; } };
然后用它作为一个变量:setListener(listener).
这个可以让你再你的activity中有多个相同的监听器类
添加回答
举报
0/150
提交
取消