2017-06-23 7 views
0

私は3クラスを持っています。 MainActivity、OneFragment、TwoFragment、私はOneFragment.AndでSqliteを使って記入するリストビューを持っています.2つのフラグメント(CreateData関数はSqlHelperクラスを使用しています)からレコードを追加しますが、新しいレコードはリストビューに表示されません。ListViewに新しいレコードを表示しない

どうすればこの問題を解決できますか?

私がアップロードできるコードを見たい場合。

答えて

0

は、私は非常にあなたの代わりに、リストビューの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`メソッドを持っていないとして、コード

+0

上記溶液は、アレイを想定し、リストビューのソースはカーソルであった場合に動作しませんを送信理解していない場合。したがって、カーソルを使用する場合は単に 'items.clear()'を省略してください。カーソルについては、 'adapter.notifyDataSetChanged();'の代わりに 'adapter.swapCursor(items);'を使うこともできます。私は後者を単に説明的だから単純に使う。 – MikeT

+0

MukhtarとMikeTの回答をありがとうございました。私はあなたの孤独なやり方をして、私はswapCursorでそれを行うことができますが、私はアプリケーションを再び開くときに動作します。私はonPause、onResumeを試みますが、結果は同じです。 – Statistician

+0

私はフラグメントをまだ使用していません。しかし、これは[タブフラグメントが選択されたときにトリガされるイベント](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

関連する問題