나는 많은 사용자 정의보기와 사용자 정의 ListAdapter가 포함 된 꽤 멋진 MergeAdapter를 가지고 있습니다. 이 MergeAdapter는 x 초마다 업데이트되는 컨텐츠를 표시하는 ListActivity를 구동합니다.MergeAdapter의 내용 업데이트
현재 새 MergeAdapter를 만들고, 내 모든 사용자 정의보기를 만들고 추가합니다 (여기에는 몇 개의 ImageView가 포함되어 있습니다). - 내 활동의 ListView에서 setAdapter를 호출하십시오.
업데이트 약 10 분 후에 힙 공간이 부족하여 충돌이 발생합니다. 궁극적으로
새로운 이미지 뷰가 추가되어 있기 때문에, 다음과 같은 예외가 발생합니다 :Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget
을 (ArrayAdapter와 같은) 간단한 어댑터, 난 그냥 데이터 세트를 업데이트하고, 부를 것이다으로
notifyDataSetChanged()
어댑터의
.
MergeAdapter를 "업데이트"하는 비슷한/권장 방법이 있습니까? 아니면 잠재적으로 복잡한 MergeAdapter의 내용을보고 개별 뷰를 업데이트해야합니까?
내 단일 목록보기에 사용자 지정 커서 어댑터를 사용하고 있습니다. 두 커서 어댑터를 하나의 단일 목록보기로 병합하려고합니다. 서버에서 결과를 얻은 후에 listview를 새로 고치고 싶습니다. 그러나 mergeAdapter가 새로 고쳐지지 않습니다. . –
FeedQuestionCursor ctx.getContentResolver =() 쿼리 ( \t \t \t \t \t FeedQuestionProvider.FEED_QUESTION_URI, 널, 널, 널, \t \t \t \t \t NULL); \t \t \t QuestionAdapter.changeCursor (FeedQuestionCursor); \t \t \t QuestionAdapter = 새로운 FeedQuestionCursorAdapter (getActivity() \t \t \t \t \t FeedQuestionCursor); \t \t \t lv_earn_question.invalidate(); \t \t \t // QuestionAdapter.notifyDataSetChanged(); \t \t \t ((BaseAdapter) QuestionAdapter) .notifyDataSetChanged(); –
@CommonsWare : 다른보기 및 SimpleCursorAdapters를 병합하려면 MergeAdapter를 사용합니다. 당신이 말했듯이 notifyDataSetChanged는 모든 ListAdapter를 업데이트합니다. 그러나보기를 업데이트하는 해결 방법이 있습니까? 도와주세요. –