场景:
我有一个活动,它在gridview中填充sqlite数据库中的数据。 我正在通过GridView的onItemClick调用此活动的片段:
FragmentA a = new FragmentA();
android.support.v4.app.FragmentManager fm = getSupportFragmentManager();
android.support.v4.app.FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.Main, a, "a").addToBackStack("a");
ft.commit();
在该片段中,对所选择的gridview的单元格内容进行了一些更改。
然后,当我将其添加到Backstack时,按下后退按钮将删除片段,而在onPauseMethod中,更改将在数据库中进行。
@Override
public void onPause() {
super.onPause();
tasksDatabaseOperations.updatenote(id, updated_title, updated_note, updated_date, updated_color, protectredBoolean);
}
现在,要在主活动的gridview中进行更改,必须调用我在其onCreate方法中调用的adapter.notifyDataSetChanged。
但是,因为它是一个片段,删除它既不调用Activities onCreate也不调用onResume方法。
针对这种情况的任何解决方法?
答案 0 :(得分:1)
更好的方法是你应该使用接口写一个回调方法 来自您正在使用的片段的活动,以便在此片段时使用 分离然后该方法将被回调并按您的意愿完成您的工作。
答案 1 :(得分:0)
你有很多选择,其中一个是使用广播接收器来通知从片段到主要活动的数据更新....另一种方式,因为你想要从片段到活动的信号刷新是创建公共活动中的静态方法,然后可以从片段中调用