いくつかのフラグメントをインスタンス化するアクティビティが1つあります。
List<Fragment> fragments = new ArrayList<Fragment>();
fragments.add(Fragment.instantiate(this, HomeFragment.class.getName()));
fragments.add(Fragment.instantiate(this, BorrowedFragment.class.getName()));
fragments.add(Fragment.instantiate(this, LentFragment.class.getName()));
fragments.add(Fragment.instantiate(this, PeopleFragment.class.getName()));
これらのフラグメントはViewPagerにリンクされています。各フラグメントはSELECTステートメントを実行し、コンテンツをリストとしてユーザーに表示します。
問題は、HomeFragmentに、クリックするとフォームを表示するボタンがあるため、ユーザーがこのテーブルに情報を追加できることです。ユーザーが情報を追加すると、アクティビティをfinish()すると、HomeFragmentが再び表示されます。BorrowFragmentにスワイプすると、そこには何も表示されません。PeopleFragment(リストの最後)にスワイプして、BorrowedFragmentに戻る必要があります。その場合にのみ、情報が表示されます。
情報が挿入された時点で私がしていることは次のとおりです。
Button btDone = (Button) findViewById(R.id.buttonDone);
btDone.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(ck1.isChecked())
isIOwe = true;
else
isIOwe = false;
insertRecord();
Toast.makeText(getApplicationContext(), "Record added", Toast.LENGTH_SHORT).show();
/*FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.add(Fragment.instantiate(ctx, PeopleFragment.class.getName()), "test");
ft.commit();*/
finish();
}
});
フラグメントのライフサイクルを再開できるようにするために、FragmentTransactionで何かする必要があるかどうか疑問に思っていました。
何か助けはありますか?
ありがとう、フェリペ