ListView에서로드 할 약 12000 개의 레코드가있는 데이터베이스가 있습니다. BaseAdapter를 사용하고 있습니다. ListView에서 항목을로드하면 너무 오래 걸립니다.
스크롤 막대가 ListView 끝에 도달 할 때까지 제한된 수의 항목 만로드하는 응용 프로그램을 본 다음 더 많은 항목을 다시로드하는 등의 방법으로이 시간을 줄일 수 있습니까?큰 목록보기에서 데이터베이스로드
1
A
답변
1
이 유용 할 수 있습니다, 부하 더 많은 버튼이있는 ListView
: 당신은 여기 좀 걸릴 수 있습니다
http://www.androidhive.info/2012/03/android-listview-with-load-more-button/
:
0
당신은 목록에 onScrollListener 설정해야
및 항목 및 오프셋의 가시성을 추적하십시오. 난 당신이 여기에 예를 보여
// Adapter for the custom list
adapter = new Adapter(this, activityList);
setListAdapter(adapter);
registerForContextMenu(getListView());
getListView().setOnScrollListener(new OnScrollListener(){
public void onScroll(AbsListView lw, final int firstVisibleItem,
final int visibleItemCount, final int totalItemCount) {
switch(lw.getId()) {
case android.R.id.list:
// Make your calculation stuff here. You have all your
// needed info from the parameters of this function.
// Sample calculation to determine if the last
// item is fully visible.
final int lastItem = firstVisibleItem + visibleItemCount;
if(lastItem == totalItemCount) {
// Last item is fully visible.
Log.i("a", "last item fully visible...");
try {
if(offset > 0){
int newLimit;
int oldOffset = offset;
if(offset >= limit){
newLimit = limit;
offset = offset - limit;
}
else{
newLimit = length;
offset = 0;
}
for (int i=0; i < newLimit; i++)
{
JSONObject item = jFeed.getJSONObject(i + length - oldOffset);
// Pulling items from the array
// Get list info
String sInfo = item.getString(TAG_INFO);
Log.i(MainActivity.class.getName(), "Info: " + sInfo);
// Populate the dynamic custom list
HashMap<String, String> map = new HashMap<String, String>();
map.put(KEY_INFO, sInfo);
activityList.add(map);
}
adapter.notifyDataSetChanged();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
public void onScrollStateChanged(AbsListView view, int scrollState) {
// TODO Auto-generated method stub
if(scrollState == 0)
Log.i("a", "scrolling stopped...");
}
});
관련 문제
- 1. 데이터베이스로드 중입니까?
- 2. 텍스트 파일에서 데이터베이스로드
- 3. java로 neo4j 데이터베이스로드
- 4. JMeter SQLServer 데이터베이스로드 테스트
- 5. PHP에서 변수에 행 데이터베이스로드
- 6. CoreData에 직접 데이터베이스로드
- 7. 이전 설치에서 데이터베이스로드
- 8. LoadRunner 및 데이터베이스로드 테스트
- 9. 스크립트를 사용하여 장고 데이터베이스로드
- 10. C#의 데이터베이스로드 진행률
- 11. 데이터베이스로드 - 진행률을 표시하는 방법 바?
- 12. Ormlite에 SQL 쿼리를 사용하여 데이터베이스로드
- 13. void * 데이터 blob에서 sqlite 데이터베이스로드
- 14. 데이터베이스로드 러너와 함께 보고서를 작성하십시오.
- 15. 년 datetimepicker 연도 데이터베이스로드 C#
- 16. 레일즈 외부에서 데이터베이스로드 밸런싱이 필요합니까?
- 17. 웹 응용 프로그램 데이터베이스로드 감소
- 18. 사용자 로그인에 따라 다른 데이터베이스로드?
- 19. 목록보기에서 webservice의 큰 데이터를 표시하기위한 최적의 접근 방식/패턴
- 20. 라이트 스위치 및 데이터베이스로드 - 모범 사례
- 21. 웹 페이지 또는 mySQL 데이터베이스로드 테스트
- 22. 병합 Excel 파일 수 및 SQL 데이터베이스로드
- 23. 문서 처리 속도 향상 및 데이터베이스로드 시간
- 24. C# 목록보기에서 목록보기의 항목을 목록보기에서 제외합니다.
- 25. 목록보기에서 findcontrol
- 26. 목록보기에서 SetImageDrawable
- 27. 목록보기에서 목록보기에서 y 좌표로 목록보기 항목 위치 결정
- 28. 목록보기에서 웹보기로 이동
- 29. 목록보기에서 색인 선택
- 30. 목록보기에서 항목 선택
세트 쿼리에서 한계 당신이 말했듯을 http://stackoverflow.com/questions/1407442/android-sqlite-and-huge-data-sets – tyczj