2012-07-24 4 views
-1

XML 레이아웃에서 팽창 된 뷰의 몇 가지 인스턴스를 포함하는 뷰가 있습니다.팽창 된 레이아웃이있는 nextFocusDown

xml 레이아웃에서 나는 해당 레이아웃의 요소에 할당 된 ID를 기반으로 android:nextFocusDown 속성을 정의했습니다.

이제 레이아웃의 첫 번째 인스턴스를 통해 다음을 클릭해도 문제가 없습니다. 그러나 레이아웃의 다음 인스턴스의 첫 번째 요소를 터치하고 다음을 클릭하면 페이지의 맨 위로 돌아갑니다 (기본적으로 첫 번째 인스턴스에서 해당 필드)

내 이론은 그것들은 동일한 ID를 가지고 있기 때문에 (나는 ID를 정의하기 위해 레이아웃 xml에서 android:id="@+id/..."을 사용했다), 첫 번째 인스턴스로 점프하고 있음을 알 수있다.

이것을 정의하는 또 다른 방법이 있습니까, 아니면 제가 누락 된 것이 있습니까? 레이아웃은 꽤 복잡하므로 코드의 모든 요소를 ​​만드는 대신 XML을 사용할 수 있어야합니다.

감사합니다, - 켄

답변

0

는 당신은 코드에서 수행 할 수있는 동적 ID를해야합니다. XML 경로를 사용할 수 없습니다. 또한 클릭 이벤트를 어떻게 처리하고 있으며 어떤 EditText가 있습니까? ID를 재사용하는 경우 어떻게 올바른 Button/EditText에 연결할 것입니까?

나는이 방법은 당신을 위해 일 것 같아요 : Transferring touch focus to another view

당신은 초점이 코드에 자신을 변경 처리해야합니다.

+0

내가 레이아웃을 부 풀릴 때부터 올바른 뷰를 얻을 수 있지만 루트 뷰를 가져 와서 'view.findViewById (R.id.whatever)'를 호출하고 클릭 핸들러를 추가하면 –

+0

이 표시됩니다. 내 업데이트 답변을 참조하십시오. –

+0

좋아, 모르겠다. 병이 있으면 그것을 사용할 수 있을지 모르겠다. 나는 XML을 포기해야만한다고 마지 못해서, 꽤 지저분한 코드를 만들 것이다. 도움을 주셔서 감사합니다! –

관련 문제