2014-08-28 13 views
0

我的目標是創建一個可重用的庫,如果我要創建新項目,我可以包含這些庫。例如,這是登錄從已創建的庫中獲取響應

我將分別創建登錄項目,進行設計和編碼。現在,如果我將在我的一個項目中使用它,我只需將其作爲依賴關係包含在內。到目前爲止,這是工作,登錄顯示在我的新項目。

我遇到的挑戰是如何處理或獲得對我的應用程序的登錄結果的響應。由於它們是單獨的項目,因此它們的最佳策略是什麼?

什麼是最佳策略。或者有沒有更好的方法來創建可重用的庫。

由於

一個 ActivityFragment(已加載上 Activity)之間
+0

是您的登錄組件「的'Activity'或者它是一個'Fragment'? – 2014-08-28 07:34:14

+0

我用片段(android.support.v4.app.Fragment)。 – chkm8 2014-08-28 07:49:46

+0

即時嘗試使用單身,但我仍然無法弄清楚邏輯。希望你能爲此提供一些邏輯。, – chkm8 2014-08-28 07:53:37

回答

1

交互性是很容易的。您可以將公共方法添加到Fragment,然後在您的Activity方法中調用它。否則,如果您的登錄過程是異步任務(即將在後臺線程中完成),您可能需要一個界面來通知父母Activity登錄過程已完成。

下面是一些入門代碼片段。

public LoginFrag extends Fragment { 
    // Other stuff   

    /* This is your own method which checks user credentials */ 
    public void check() { 
     boolean success = false; 

     // codes for checking username and password 
     // and then update 'success' variable 

     // with this code you'll inform the parent activity 
     if(mListener != null) { 
      mListener.onResult(success); 
     } 
    } 

    OnLoginResultListener mListener;   

    public void setOnLoginResultListener(OnLoginResultListener listener) { 
     mListener = listener; 
    }   

    public interface OnLoginResultListener { 
     public void onResult(boolean success); 
    } 
} 

這是父活動代碼:

public MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle b) { 
     //Other stuff 
     LoginFrag login = new LoginFrag(); // from the library 
     login.setOnLoginResultListener(new OnLoginResultListener(){ 

      @Override 
      public void onResult(boolean success) { 
       // do stuff here with 'success' for example: 
       String message; 
       if(success) { 
        message = "Congratulation! you've logged in"; 
       } else { 
        message = "Ooops! login failed!"; 
       } 
       console.log(message); 
      } 
     }); 

     // Now load this fragment by 'FragmentManager' 
     // via 'getSupportFragmentManager()' 
    } 
} 
+0

感謝你分享你的片段。我會檢查一下。順便說一下,你是否也可以發佈用於創建OnLoginResultListener的片段。這是我第一次創建這樣的類。我想我需要一個指導,不要搞砸任何東西。 – chkm8 2014-08-28 08:35:53

+0

@chulolots Java接口無法實現!他們的所有方法都是公共抽象的,所以你不能實現它們,谷歌java界面的更多信息 – 2014-08-28 09:11:17