2014-08-28 4 views
0

내 목표는 새 프로젝트를 만들 경우 방금 포함시킬 수있는 재사용 가능한 라이브러리를 만드는 것입니다. 이에 대한 예는 입니다. 로그인입니다.생성 된 라이브러리에서 응답 받기

나는 로그인 프로젝트를 별도로 만들고, 디자인 및 코딩을 할 것입니다. 자, 내 프로젝트 중 하나에서이 프로젝트를 사용하려면 종속성으로 포함시켜야합니다. 지금까지, 이것은 작동하고 로그인은 내 새 프로젝트에 표시됩니다.

내가 만난 챌린지은 내 응용 프로그램에 대한 로그인 결과를 처리하거나 응답하는 방법입니다. 그들은 별개의 프로젝트이기 때문에,

무엇이 최선의 전략이 될까요? 또는 재사용 가능한 라이브러리를 만드는 더 좋은 방법이 있습니까?

감사합니다 (즉, Activity에로드 된)는 ActivityFragment 사이

+0

이 '로그인 구성 요소'는'Activity' 경우, 혹은'Fragment'입니까? –

+0

fragment (android.support.v4.app.Fragment)를 사용했습니다. – chkm8

+0

싱글 톤을 사용하려고하지만 여전히 로직을 파악할 수 없습니다. 당신이 이것을 위해 약간의 논리를 줄 수 있기를 바랍니다. – chkm8

답변

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

+0

@chulolots Java 인터페이스를 구현할 수 없습니다! 그들의 메서드는 모두 공개 초록이므로 구현할 수 없으므로 자세한 내용은 Google Java 인터페이스를 참조하십시오. –