2016-07-26 3 views
0

조각 (ListView)이 포함 된 활동이 있습니다. 이 ListView는 파일 구조체 (DMS 또는 파일 탐색기)를 나타냅니다. 목록 항목을 클릭하면 목록이 업데이트됩니다 (adapter.notifyDataSetChanged). 그런데 어떻게 프리 빌즈리스트 표현으로 되돌아 갈 수 있습니까?조각에서 ListView를 탐색하는 방법

답변

0

파일 시스템을 트리로 생각하면 솔루션을 시각화하는 데 도움이 될 수 있습니다. 트리의 모든 노드 (루트 외부)에는 부모 참조뿐만 아니라 자식 참조 (노드가 리프가 아니라고 가정)가 있습니다. 이미이 트리를 아래로 탐색하고 있다면, 파일 시스템의 각 요소에 대한 하위 참조가있을 것입니다. 항목을 클릭하면 선택한 디렉토리 내에있는 요소로 자신의 목록이 자동으로 업데이트됩니다. 이 경우, 부모 디렉토리에 대한 참조를 추가하고이를 정렬 버튼으로 연결합니다. 부모 참조가 고유하다고 가정하면, 즉 디렉토리 레벨 x 및 레벨 y가 다른 식별자를 갖는다면, 아무런 문제가 없어야한다.

트리를 가로 지르면서 증가하고 증가 할 때 증가하는 정렬 카운터를 구현할 수도 있습니다. 파일 시스템의 두 레벨이 동일한 식별자를 갖는 경우 유용 할 수 있습니다. 코드가 없으면 특정 구현 사례에 대해 조언하는 것이 어려울 수 있지만 주요 아이디어는 동일하게 유지됩니다. 가능한 경우 시스템 내 각 요소에 대한 참조 (부모 및 자식 참조)를 모두 참조해야합니다.

참고 : 시스템의 루트 요소에 대한 부모 참조 또는 'null'하위 참조를 'null'(또는 확인할 수있는 특정 값)으로 저장하면 상승 할 수없는 시점을 알 수 있습니다. 또는 더 내려갈 수 있습니다. 이렇게하면 화면에 토스트를 보내어 사용자에게 자신의 행동이 잘못되었음을 알리거나 맨 위에 도달했을 때 뒤로 버튼을 제거 할 수도 있습니다.

나는 이것이 행운을 빕니다!

+0

답변 해 주셔서 감사합니다. 마지막 질문에 : 내 listview 조각에 있습니다. 어떻게 backButton 메서드를 조각으로 사용할 수 없기 때문에 주 활동에 변경 내용을 커밋 할 수 있습니까? – San

+0

개인적으로 필자는 단편에 삽입 된 버튼을 다시 버튼으로 사용한다고 상상 했었습니다 (액션 바의 조상 탐색 버튼이 아닐 수도 있음). LinearLayout을 사용하면 쉽게이 작업을 수행 할 수 있습니다. 구조의 최상위 레벨에 도달했습니다. 이 버튼을 클릭하면 부모 참조를 찾기위한 로직을 수행하고 올바른 내용으로'adapter.notifyDataSetChanged'를 호출 할 수 있습니다. – DMP

관련 문제