2016-11-08 2 views
0

이것은 내 상황입니다. 청취자를 사용하기 위해 청취자를 뷰 생성기에 전달하려고합니다. 하지만 문제는 내 수신기에서 일부 데이터를 얻으려면 해당보기를 사용하고 싶습니다. 몇 가지 왜곡 된 ... 은 Listener가 첨부해야하는 인터페이스처럼 View를 미리 정의하는 방법입니까? 나는 안드로이드에 MVC 프로젝트에서 일하고 있어요 내가 작성 및 논리는보기 및 발표자하기 위해 분리해야 원인이 문제는 거기에서 나올이 청취자 문제로 View를 생성하는 메소드에 청취자 전달

 AdapterView.OnItemSelectedListener listener = new AdapterView.OnItemSelectedListener() { 

      @Override 
      public void onItemSelected(AdapterView<?> adapterView, View view, int pos, long l) { 

       //but I can not do this and use spinner cause it is not defined 
       String text = spinner.getSelectedStrings().toString(); 

      } 

      @Override 
      public void onNothingSelected(AdapterView<?> adapterView) {} 
     }; 

generateSpinner(attributes, listener); 

. 그래서 내 발표자의 힘보기는 주어진 논리를 가진 회 전자를 생성합니다.

+0

이 샘플 저장소를 사용하면 단검으로 MVP 혼합에 대해 자세히 알 수 있습니다. http://github.com/mmirhoseini/marvel –

+0

@MohsenMirhoseiniArgi 감사합니다. 많이 살펴 보겠습니다. – Kenji

답변

0

귀하가 직접 질문의 절반 이상을 답변하셨습니다. 예를 들어,

MyViewCallback callback; 

// ... on some action 
callback.run(this); 

당신을 -이 interface의 인스턴스를 저장하고 필요할 때마다 당신의 View의 범위에서 그 run() 메서드를 호출 할 수 있습니다, 지금

public interface MyViewCallback 
{ 
    void run(View view); 
} 

이 같은 인터페이스를 확인 이 callback에 대한 설정기를 만들어 콜백을 등록하는 데 사용할 수 있습니다.