내 친구로부터 CursorAdapter가 MVC 규칙을 따르지 않는다고 들었습니다. 모델을 통해서가 아니라 데이터베이스에서 직접 값을 가져옵니다. 또한 그는 사용자가 목록보기를 통해 항목을 반복 할 때마다 CursorAdapter가 dbs 쿼리를 반복해서 실행한다고 말했습니다. 따라서 CursorAdapter는 자주 사용되지 않습니다. 나는이 진술에 대해 매우 궁금해합니다. 누구든지 나를 도와 줄 수 있습니까? 그는 옳은가 틀린가? 그리고 그가 옳다면, 나는 대신 어떤 어댑터를 사용할 수 있습니까?ListView에 CursorAdapter를 사용하지 않을 때
답변
CursorAdapter 없습니다 ... 당신은 당신의 모델이 될 정의에 따라 달라집니다 모델
를 통해보기에 직접 데이터베이스에서 값을 가져 가라. Cursor
모델이 될 수 있습니다.이 경우 CursorAdapter
은 모델에서 데이터를 가져 와서보기에 적용합니다.
친구가 사용자 정의 Java 클래스 세트로 정의 된 모델을 생각하고있을 수 있습니다. 이 경우 CursorAdapter
은 해당 클래스에 대해 알지 못합니다.
그는 목록보기를 통해 매번 사용자 반복 처리 항목, CursorAdapter 다시 DBS 쿼리를 실행하고 다시
별로 말했다. CursorAdapter
은 데이터베이스 쿼리 실행에 대해 아무 것도 모릅니다.
내가 생각할 수있는 유일한 시나리오는 쿼리에 1MB 이상의 큰 결과 집합이있는 경우 친구가 설명하는 것과 흡사합니다. 이 경우 Cursor
은 일반적으로 수행하는 방식대로 전체 결과 집합을 보유하지 않습니다. 대신에 결과의 일부를 보유하고 사용자가 Cursor
의 내용을 지나치게 스크롤하면 Cursor
은 데이터베이스 I/O를 트리거하여 더 많은 결과를 가져오고 이전의 일부 메모리를 최소화하여 보유한 전체 메모리 양을 최소화합니다 Cursor
에 의해). 그 결과
, CursorAdapter 자주 사용되지 않습니다
나는 자주 ArrayAdapter
보다 사용된다는 말을하고, 더 많은 개발자가 이동할 때 모두가 일반적으로 호의에서 떨어지고있다 RecyclerView
및 RecyclerView.Adapter
.
MVC/MVP/MVVM 아키텍처의 일부로 "실제"모델 (및 뷰 - 모델)을 사용하는 것과는 대조적으로 친구가 실제로 염려하는 것은 Cursor
을 모델로 사용하는 것입니다. 물론 더 큰 프로젝트에서 들었을 때, Cursor
은 대부분 CursorAdapter
또는 RecyclerView.Adapter
으로 직접 사용되지 않고 다른 모델 객체를 채우기 위해 사용됩니다. 그러나 실제로 앱에 많이 의존합니다. 사소한 응용 프로그램은 특정 GUI 아키텍처를 엄격하게 준수 할 필요가 없으며 "사소한 응용 프로그램"과 "대규모 프로젝트"간의 구분선을 정의하기 어렵습니다.
그가 맞다면 대신 어떤 어댑터를 사용할 수 있습니까? 친구가 모델 자바 객체를 원하는 경우
은, 일반적으로는 ArrayAdapter
모델 개체의 컬렉션에서 얻을하는 방법을 알고있는 BaseAdapter
사용할 수 있습니다.또는 RecyclerView
영역에서 모델 개체 컬렉션의 구조를 알고있는 RecyclerView.Adapter
을 사용합니다.
고맙습니다. 내 하루를 보냈습니다. –
- 1. gridview를 사용하지 않을 때
- 2. ACS를 사용하지 않을 때?
- 3. MVVM을 사용하지 않을 때?
- 4. MPI를 사용하지 않을 때
- 5. 지연로드를 사용하는 경우와 사용하지 않을 때.
- 6. Drupal 노드를 사용하지 않을 때?
- 7. SQL 인덱스를 사용하지 않을 때
- 8. 컴퓨터를 사용하지 않을 때 알아보기
- 9. 사용하지 않을 때 UIViewController 해제
- 10. iPhone 가속도계를 사용하지 않을 때
- 11. Ruby에서 to_sym을 사용하지 않을 때?
- 12. & php에 게시 할 때 & 사용하지 않을 때
- 13. CursorAdapter를 재정의하는 방법 bindView
- 14. DP 및 PX 측정을 사용하지 않을 때 및 사용하지 않을 때
- 15. TaskCreationOptions.LongRunning을 사용하지 않을 때 이상한 동작이 발생했습니다.
- 16. 사용시기 및 사용하지 않을 때 마지막으로 시도하십시오.
- 17. 휴대 기기를 사용하지 않을 때 리디렉션
- 18. 엔티티 프레임 워크를 사용하지 않을 때
- 19. 레일 옵저버 - 레일에서 옵저버를 사용하지 않을 때
- 20. 목표 C 언제 alloc을 사용하지 않을 때
- 21. IceFaces 채우기 HtmlSelectOneListbox xhtml을 사용하지 않을 때
- 22. intn_t 사용시기 및 사용하지 않을 때
- 23. PyQT : 사용하지 않을 때 PushButton이 명령을받습니다.
- 24. SQL Server CASE WHEN을 사용하지 않을 때
- 25. jade/express - 레이아웃을 사용하거나 사용하지 않을 때
- 26. EXC_BAD_ACCESS, 중단 점을 사용하지 않을 때
- 27. BIND_AUTO_CREATE를 사용하지 않을 때 ServiceConnection 누수가 발생했습니다.
- 28. 콘솔 C#을 사용하지 않을 때 닫습니다.
- 29. 언제 안드로이드에서 조각을 사용하지 않을 때 사용합니까?
- 30. 사용하지 않을 때 Webmin을 비활성화 하시겠습니까?
절대적으로 틀린데, 가능하면 google guys에서 'CursorAdapter' 또는'ResourceCursorAdapter' 또는 SimpleCursorAdapter'를 사용합니다. – pskink
형님, 고마워요. –