私は、たくさんのカスタムビューといくつかのカスタムListAdapterを含んだかなり気の利いたMergeAdapterを持っています。このMergeAdapterはListActivityを駆動し、x秒ごとに取得されるコンテンツを表示します。MergeAdapterの内容を更新する
現在のところ、新しいMergeAdapterを作成し、自分のカスタムビューを作成して追加します(これにはいくつかのImageViewが含まれています)。 - 自分のアクティビティのListViewでsetAdapterを呼び出します。
約10分の更新後、私はヒープスペースがなくなり、クラッシュします。新しいImageViewのが追加され、次の例外がスローされているので
最終的には:(ArrayAdapterのような)シンプルなアダプタで
Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget
を、私は、データセットを更新し、
notifyDataSetChanged()
を呼ぶだろうアダプターの
。
MergeAdapterを「更新」するための類似の/推奨の方法はありますか?または、私は潜在的に複雑なMergeAdapterの内容を歩き、個々のビューを更新する必要がありますか?
私は単一のリストビューにカスタムカーソルアダプターを使用しています.2つのカーソルアダプターを1つの単一のリストビューにマージしようとしています。結果がserver.Butから来た後、私はリストビューをリフレッシュしたいが、mergeAdapterは更新されない。 。 –
FeedQuestionCursor = ctx.getContentResolver()クエリ( \t \t \t \t \t FeedQuestionProvider.FEED_QUESTION_URI、NULL、NULL、NULL、 \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:私はMergeAdapterを使用して、さまざまなビューとSimpleCursorAdaptersをマージしています。あなたが言ったように、notifyDataSetChangedはすべてのListAdapterを更新します。しかし、ビューを更新するための回避策はありますか?助けてください。 –