問題タブ [notifydatasetchanged]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - notifyDataSetChanged() は setAdapter() メソッドとは異なるビューを表示します
みんな!を使用しているときに、非常に興味深い問題が発生しましたListView
。と を呼び出すsetAdapter()
とnotifyDataSetChanged()
、異なるビューが得られました。実際、違いはmagin
アイテムのパラメーターに関するものだけです。それで、2つの方法の間に何か違いがありますか?
PSこれはnotifyDataSetChangedとsetAdapterで重複しているとは言わないでください。その質問は2つの方法の異なるコストに焦点を当てていますが、異なる見解につながる例外を理解することを楽しみにしています.
android - ユーザーが操作するまで ListView が更新されない
ListView とカスタム アダプターがあります。ユーザーがスピナーから並べ替えタイプを変更すると、新しいアイテムでリストを再描画したいと思います。問題は、デバイス上で ListView を操作した後でのみ ListView が再描画されることです (たとえば、スクロールを開始します)。
また、アダプターの新しいインスタンスをリストに完全にリセットしようとしましたが、最初はリストが空白になり、ユーザーの操作で表示されることを除いて、同じ結果が得られます。
私はHoloEveryWhereを使用していますが、これは重要な情報かもしれません。
編集:ここにいくつかのコードがあります
EDIT : カスタム アダプターからの getView メソッド
android - Android AsyncTask onPostExecute のリストを更新するために notifyDataSetChanged を呼び出すにはどうすればよいですか
カスタム カーソル アダプターの SavedTripsAdapter を使用して、データベースが取り込まれたリスト ビューがあります。
アダプターを初期化する方法は次のとおりです。
リスト項目をクリックすると、AsyncTask で完了する次の関数を呼び出すことで、再度アップロードできます。
FragmentSavedTripsSection 内:
TripUploader で:
ただし、TripUploader は別のクラスです。トリップが正常にアップロードされるとデータベースが更新されるので、savedTripsAdapter.notifyDataSetChanged() を使用してリストを更新したい
savedTripsAdapter.notifyDataSetChanged() をどこに、どのように配置する必要がありますか?
リストビュークラスに入れるとonPostExecuteと呼ばれません。しかし、TripUploader の onPostExecute 関数に入れた場合、リスト ビュー クラスでインスタンス化した、savedTripsAdapter の同じインスタンスにアクセスするにはどうすればよいでしょうか?
ご協力いただきありがとうございます!
android - notifydatasetchanged() を呼び出したときに FragmentStatePageAdapter が更新されない
ViewPager と Spinner を使用したアクティビティがあり、Spinner でアイテムを選択してすべてのページのコンテンツを変更したいだけです。より完全に理解するために、説明します。単純な TV スケジュールの毎週の番組を開発しているので、ページは毎日のテレビ番組で、スピナーはテレビチャンネルです。番組を起動すると、すべてのチャンネルの短い 4 項目の番組リストが表示され、スピナーで「CNN」または他のものを選択すると表示されます。ページが表示されている日の完全なテレビ番組リストを表示します(TitlePageIndicatorを使用する日を表示するために)、私の問題は、スピナーでアイテムを選択し、データをロードして
notifydatasetchanged()を呼び出したときです私のFragmentStatePagerAdapterの場合-ページを更新しません。私が間違っていることを理解していませんか?
マイアダプター
MyActivity onCreate のコード
そして、これがアプリの起動後にデータを取得する方法です
そして、ここに私の問題があります-setParamsToPagesメソッドです
android - ListView エラー - java.lang.IllegalStateException
ListView で次のエラーが発生します。
java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread. Make sure your adapter calls notifyDataSetChanged() when its content changes
.
私のアプリには、CustomAdapter を持つ ListView があります。
OnCreate メソッドには次のものがあります。
また、Web サービスからデータを取得して ListView を埋める AsyncHttpResponseHandler もあります。すべてがうまく機能します。AsyncHttpResponseHandler の onFinish() メソッドで、リスト ビューのデータを更新しています。
メソッド onFinish() にたどり着いたとき、私はすでにデータのリストを持っています。
これが私のカスタムアダプターです:
これにはどのような解決策がありますか?リストを使用すると(スクロール、クリック)、データが更新されているときにエラーが発生すると思います。少し助けてください。
android - カスタム アダプタからデータが変更された後にリストビューを更新する
これに関するいくつかの投稿を見てきましたが、問題を解決するのに十分なほどフォローしていないようです。
レコードを更新または削除した後、ListView を更新しようとしています。現在、notifyDataSetChanged() を使用していますが、削除しても更新されません。削除できます。その後、元に戻してhistory.javaをリロードすると、すべてのデータをリロードしているため、更新が表示されます。
ここに私のHistoryAdapter.javaがあります
ここに、アダプターを設定してリストビューを作成するhistory.javaがあります
android - イベントリスナーから Android UI を更新するには?
パケットがいつ到着したかを検出するパケットリスナーがありArrayAdapter
、これが発生したときに更新する必要があります。問題は、メソッドにアクセスしようとするとadapter.notifyDataSetChanged()
、例外がスローされることです。
何か案は?