ListView를 여러 부분으로 나누고로드하는 방법은 무엇입니까?
문제
사용자가 내 앱을 시작할 때 제네 라코 디스 태그 코드를 일부만 표시하고 사용자가 "더 많은 항목로드"라는 버튼을 누를 때 다른 코드를 표시하려면 어떻게해야하는지 궁금합니다.
500 개가 넘는 항목의 큰 목록이 있는데 빠르게로드 할 수 있도록 여러 부분으로 나눌 생각입니다.
아래에 더 많은 이메일을로드 할 수있는 옵션을 제공하는 모든 이메일 앱과 유사한 기능을 원합니다.
누군가 내 문제에 대한 샘플 코드가 있다면 다른 사람에게 약간의 지침을 알려 주시면 감사하겠습니다.
해결책
버튼을 잘 구현하는 것은 간단합니다.
onCreate에서 처음 50 개 항목으로 어댑터를로드 한 다음 다음 50 개 등을 추가하는 onClickListener로 버튼을 구현합니다.
어떻게 나는 당신이 정말로하고 싶은 것은 목록보기를 지연로드하여 스크롤 할 때 더 많은 항목을로드하므로 추가 버튼으로 UI를 복잡하게 만들 필요가 없다고 생각합니다.
이를 위해 listactivity는 OnScrollListener를 구현해야합니다
그 예는 다음과 같습니다. Android Endless List
다른 팁
질문에 따르면 처음에는 몇 가지 항목을로드 한 다음 사용자가 "추가 항목로드"버튼을 클릭 할 때마다 나중에 더 많은 항목을로드하려는 것 같습니다.
두 가지 경우가 가능합니다.
-
첫 번째 경우 : 웹 서비스는 사용자가 "추가 항목로드"버튼을 클릭 할 때마다 처음 20 개 항목을 보내고 다음에 20 개 항목을 보낼 때와 같이 부분적으로 응답을 보낼 수 있습니다.
-
두 번째 경우 : 응답으로 500 개의 항목을받은 경우 '더 많은 항목로드'기능을 구현하려면 모든 항목을 저장할 데이터베이스 테이블을 만들어야합니다.데이터베이스 값 저장이 완료되면 처음에는 20 개의 항목을 가져오고 다음에 20 개의 항목을로드하는 식으로 계속 진행됩니다.
목록보기에서 데이터의 일부를 처음으로로드합니다.
Handler
의 개념을 사용해야합니다.onclick 이벤트는 핸들러 내부의 핸들러로 메시지를 보내야합니다. 전체 데이터를로드하고 notifydataSetChanged
메소드를 호출하는 로직을 작성해야합니다.
아래 샘플 코드를 살펴보세요.처음에 사용자는 목록의 일부를 볼 수 있습니다.사용자가 목록 항목을 클릭하면 목록 사용자가 전체 목록보기를 볼 수 있습니다.당신이 기대하는 것과 비슷합니다.
샘플 코드 라코 디스
감사합니다 디팍