私は3クラスを持っています。 MainActivity、OneFragment、TwoFragment、私はOneFragment.AndでSqliteを使って記入するリストビューを持っています.2つのフラグメント(CreateData関数はSqlHelperクラスを使用しています)からレコードを追加しますが、新しいレコードはリストビューに表示されません。ListViewに新しいレコードを表示しない
どうすればこの問題を解決できますか?
私がアップロードできるコードを見たい場合。
私は3クラスを持っています。 MainActivity、OneFragment、TwoFragment、私はOneFragment.AndでSqliteを使って記入するリストビューを持っています.2つのフラグメント(CreateData関数はSqlHelperクラスを使用しています)からレコードを追加しますが、新しいレコードはリストビューに表示されません。ListViewに新しいレコードを表示しない
どうすればこの問題を解決できますか?
私がアップロードできるコードを見たい場合。
は、私は非常にあなたの代わりに、リストビューのRecyclerViewを使用することをお勧めします(。Googleが言うように:
RecyclerViewウィジェットは、リストビューのより高度で柔軟なバージョンである)、それらの両方いくつかのリフレッシュデータが必要ですOneFragmentで
@Override public void onResume() { super.onResume(); items.clear(); items = dbHelper.getItems(); // reload the items from database adapter.notifyDataSetChanged(); }
この問題はあなたの問題を解決するのに役立ちますAndroid ListView not refreshing after notifyDataSetChanged
あなたはカーソルが `clear`メソッドを持っていないとして、コード
上記溶液は、アレイを想定し、リストビューのソースはカーソルであった場合に動作しませんを送信理解していない場合。したがって、カーソルを使用する場合は単に 'items.clear()'を省略してください。カーソルについては、 'adapter.notifyDataSetChanged();'の代わりに 'adapter.swapCursor(items);'を使うこともできます。私は後者を単に説明的だから単純に使う。 – MikeT
MukhtarとMikeTの回答をありがとうございました。私はあなたの孤独なやり方をして、私はswapCursorでそれを行うことができますが、私はアプリケーションを再び開くときに動作します。私はonPause、onResumeを試みますが、結果は同じです。 – Statistician
私はフラグメントをまだ使用していません。しかし、これは[タブフラグメントが選択されたときにトリガされるイベント](https://stackoverflow.com/questions/23970301/what-event-is-triggered-when-a-tab-fragment-is-selected )またはおそらくこの最初のフラグメントがロードされた後のViewPagerコールsetUserVisibleHint(https://stackoverflow.com/questions/25667657/viewpager-call-setuservisiblehint-after-first-fragment-is-loaded/25822814#25822814) – MikeT