程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> android-能將一個java監聽器分離成給他自己的函數麼?

android-能將一個java監聽器分離成給他自己的函數麼?

編輯:編程綜合問答
能將一個java監聽器分離成給他自己的函數麼?

我能將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;
         }
    };
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved