Android 按Fragment Back按钮调用哪个方法或如何调用用户定义的函数
我有一个Actionbar Sherlock活动和3个Actionbar选项卡。第二个选项卡有两个片段A和B。片段A有列表日历,片段B有任务添加功能。当我单击片段A列表日历项时,它将转到片段B。然后我在片段B中添加一些任务,然后按“上一步”按钮返回重定向片段A很好。我的问题是当我从片段B返回到片段A时调用了哪个方法,并且当返回到片段A时我更新了任务细节 ActionbarActivityclass: 当我选择第二个Actionbar选项卡时,它有两个片段ListCalendarFragment和TaskFragment。首先我添加这两个片段。然后我隐藏TaskFragment并仅显示ListCalendarFragmnet 当我单击列表日历项时,它将调用一个监听器,该监听器可用于显示任务片段以及隐藏列表日历片段 ListItemClickListener:接口 ActionbarActivityclass实现ListItemClickListener。 此功能显示任务日历并隐藏列表日历Android 按Fragment Back按钮调用哪个方法或如何调用用户定义的函数,android,android-fragments,backbone-events,Android,Android Fragments,Backbone Events,我有一个Actionbar Sherlock活动和3个Actionbar选项卡。第二个选项卡有两个片段A和B。片段A有列表日历,片段B有任务添加功能。当我单击片段A列表日历项时,它将转到片段B。然后我在片段B中添加一些任务,然后按“上一步”按钮返回重定向片段A很好。我的问题是当我从片段B返回到片段A时调用了哪个方法,并且当返回到片段A时我更新了任务细节 ActionbarActivityclass: 当我选择第二个Actionbar选项卡时,它有两个片段ListCalendarFragment和
@Override
public void onListClick() {
fragmanager = getSupportFragmentManager();
fragmentrans = fragmanager.beginTransaction();
fragmentrans.hide(fragmentListCalendar);
fragmentrans.show(fragmentTask);
fragmentrans.addToBackStack(null);
fragmentrans.commit();
}
我的问题是,当我通过单击“上一步”按钮返回列表日历时,会调用哪个生命周期方法,或者如何调用列表日历片段中的用户定义方法。因为我需要刷新列表日历片段中的列表日历适配器。谢谢
我希望我正确地理解了你的问题。下面是我如何解决类似问题的: 为片段B创建一个如下所示的接口:
public interface FragmentBListener {
public void onBackButtonPressed();
}
@Override
public void onBackButtonPressed() {
Log.i(TAG, "onBackButtonPressed()");
// Do something, e.g. reload Fragment A
}
然后,在onCreateView上面的片段B中实例化它,在这里实例化小部件,等等:
FragmentBListener mCallback;
然后,在片段B中,无论何时,只要您想返回,或取消或其他什么,都可以调用:
mCallback.onBackButtonPressed();
当然,该接口是在您的主活动或您选择的任何活动中实现的,因此应该有这样一种方法:
public interface FragmentBListener {
public void onBackButtonPressed();
}
@Override
public void onBackButtonPressed() {
Log.i(TAG, "onBackButtonPressed()");
// Do something, e.g. reload Fragment A
}
希望这能有所帮助。嘿,谢谢你的回答,但它是如何工作的。当我按“后退”按钮时,界面会自动调用。
@Override
public void onBackButtonPressed() {
Log.i(TAG, "onBackButtonPressed()");
// Do something, e.g. reload Fragment A
}