为了账号安全,请及时绑定邮箱和手机立即绑定

能将一个java监听器分离成给他自己的函数么?

能将一个java监听器分离成给他自己的函数么?

holdtom 2019-03-06 14:15:58
我能将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;
         }
    };
}


查看完整回答
反对 回复 2019-04-26
?
函数式编程

TA贡献1807条经验 获得超9个赞

你可以在你的方法外创建一个变量:

private Preference.OnPreferenceClickListener listener = new Preference.OnPreferenceClickListener() {
     @Override
     public boolean onPreferenceClick(Preference arg0) {
        finish();   
        return true;
     }
};

然后用它作为一个变量:setListener(listener). 这个可以让你再你的activity中有多个相同的监听器类


查看完整回答
反对 回复 2019-04-26
  • 2 回答
  • 0 关注
  • 498 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信