2012-07-09 2 views
0

ListView 클래스의 상황에 맞는 메뉴로 작업 할 수 있습니까? 여기에는 onContextItemSelected() 메서드가 없습니다. Activity 클래스 안에 컨텍스트 메뉴가있는 코드를 작성하고 싶지 않습니다.ListView 및 ContextMenu

감사합니다.

+0

어떤 계급을 의미합니까? ListView를 확장합니까? 아니면 사용자 정의 어댑터 구현입니까? – Egor

+2

여기에 무엇이 요청되는지 이해하기 어렵습니다. 'ListView' 안에'ContextMenu'를 구현하는 것에 대해 묻고 있습니까? 'Activity' 내에 코드를 작성하고 싶지 않다는 것은 솔직히 말해서 ** 나쁜 아이디어 **입니다. –

+0

예, ContextMenu 친척이 Activity가 아닌 ListView 클래스에 있기 때문에 ListView 클래스 내부에 ContextMenu를 구현하고 싶습니다. 그러나 ListView에는 필요한 메서드가 없습니다 (onCreateContextMenu가 있지만 onContextItemSelected()가 없습니다 ...). 안드로이드 개발자의 논리를 이해하고 ...) – Scit

답변

1

이렇게하면 안드로이드 UI 패턴이 상당히 엉망이됩니다. Activity (최근 버전 Fragment)은 메뉴와 같은 위젯을 표시합니다. 이 기능을 View으로 푸시하면 앱이 신비하게됩니다.

인터페이스를 정의하여 원하는 내용을 얻을 수 있습니다. 예를 들어, ContextPopupDelegate에 컨텍스트 메뉴에서 선택 사항을 작성하고 처리 한 다음 View에서이 인터페이스를 구현하도록 할 수 있습니다. 뷰를 사용하는 모든 액티비티는 인터페이스 메소드에 위임합니다.

+0

이상하게 들리네요 ... ListView와 연결된 ContextMenu를 다른 로직 모듈 (즉, Activity 클래스)에 구현해야하는 이유는 무엇입니까? 안드로이드 UI 원칙에 대한 귀하의 설명을 보았습니다.하지만이 것들의 논리적 연결에 대해 저에게 이상합니다. 고맙습니다! – Scit

+1

활동의 UI 코드를 통합하는 "안드로이드 방식"의 좋은 점과 나쁜 점이 있습니다. 예를 들어 'Swing'을 사용하면 원하는 곳에 물건을 넣을 수 있습니다. 하지만 안드로이드 코드는 일반적으로 더 읽기 쉽지만, 쓰는 것이 더 귀찮습니다. 코드는 한 사람이 작성하지만 많은 사람들이 읽는 경우가 많으므로 Android의 순이익이있는 것으로 보입니다. 확실히 다른 사람들의 견해가 다를 것입니다. – Gene