2011-05-01 4 views
10

OnCreate()에 UI 이벤트의 바인딩 코드를 모두 넣었습니다. 그것은 내 OnCreate()를 엄청나게 만들었습니다.UI 이벤트 처리를위한 최선의 방법

Android 이벤트에 UI 이벤트를 구현하는 패턴이 있습니까? View XML 파일에 메서드를 추가 한 다음 다른 곳에서 모든 핸들러 코드를 추가 할 수 있습니까?

간단히 말해서 안드로이드 애플 리케이션 코드로 MVVM 패턴을 구현할 수있는 방법을 묻고 싶습니다.

+0

만약 당신이 MVVM 패턴을 생각하고 내가 물어 2 differnt 것은 내게 내 질문을 업데이 트됩니다 알려주세요. – Gainster

+0

+1; 이것은 자바/이벤트 주도 프로그래밍 질문과 더 비슷합니다. 당신의 탐구에 행운을 비네! :) –

+0

MVVM 프레임 워크 : http://code.google.com/p/android-binding/ – xandy

답변

5

물건을 내가 어떻게 그 :

  1. 는 XML의 모든 온 클릭 기능을 유지합니다. Java 코드에서 많은 혼란을 피하십시오.
  2. 이벤트 리스너를 함수에 유지하는 대신 활동 클래스의 멤버로 초기화합니다. 내 코드에는 너무 많은 중괄호가 맘에 들지 않습니다. 나 혼란스러워.
  3. 내 목록 어댑터가 너무 커지면 활동 클래스의 구성원이 아닌 별도의 클래스에 유지 한 다음 모든보기 수신기를 어댑터에 보관합니다.
  4. 내가 가끔 onNavigatonClick처럼 하나 개의 기능을 유지하고 다음을 클릭 한 버튼을 확인할 수 view.getId()를 사용하여 너무 많은 온 클릭 기능을 만들지 않도록합니다. 유효한 함수 호출을 위해 XML이 검사되지 않으므로 함수 이름이 잘못되면 런타임 오류가 발생합니다.
  5. 특정보기에 많은 UI 상호 작용 코드가 필요한 경우 UI 상호 작용을 처리하기 위해 GestureDetector를 사용하여 사용자 지정보기를 만듭니다.

아직 Java에 대한 많은 경험이 없으므로이 기능은 여전히 ​​기본적인 것 같습니다.

5

1.6 이상에서는 onClick 메서드 in your layout XML file을 지정하여 약간의 뚱뚱한 부분을 잘라낼 수 있습니다. 나는 일반적으로 모든 onEnd() 메소드에서 그것을 숨기고, onCreate 메소드 호출을 가진다. 적어도 onCreate는 읽기 쉽습니다.

+0

다음 링크에서 코드를 찾을 수 있습니다. http://stackoverflow.com/questions/5848207/binding-events-on- 창업하다 – Gainster

0

onCreate는 일반적으로 setContentView를 호출하고 리스너를 설정하는 데 가장 적합하지만 사용자 삽입을 처리하는 코드는 일반적으로 onClick, onTouch, onKey 등의 루틴에 사용됩니다.

코드를 게시하면 수행 한 작업을 볼 수 있습니까?

1

이미 많은 좋은 답변이 있습니다. :)

Android 1.6 이상을 사용하는 경우 새로운 fragments API가 활동을 구성하고 여러 논리 단위로 분할하는 데 도움이 될 수 있습니다.

관련 문제