我有两个片段的活动。
片段A在onResume()期间执行复杂操作,片段B需要片段A完成复杂操作,否则用户与片段B的交互将导致崩溃。
我想在此活动中放置一个进度条旋转对象,直到片段A完成,然后并排显示片段A和片段B的布局。
但我不确定如何将片段A的onResume完成暴露给活动。
在片段A中,我确实设置了fragmentlistener
public void onAttach(final Activity activity) {
super.onAttach(activity);
try {
this.mListener = (TopicListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.getClass().getName()
+ " must implement TopicListener");
}
}
但现在,谢谢。
答案 0 :(得分:1)
根据Android Developer here的建议,我建议您不要将片段连接起来,并通过活动类使用回调。
答案 1 :(得分:0)
使用您的回调将您转到活动。
使用带有地图片段的回调的示例
private MapListeners mLocation;
public interface MapListeners{
public void onMarkerClick(Marker m);
public void onLocationChanged(Location location);
}
@Override
public void onAttach(Activity activity){
super.onAttach(activity);
try{
mLocation = (MapListeners)activity;
}catch(ClassCastException e){
throw new ClassCastException(activity.toString() + " must implement OnMarkerClick and OnLocationChanged");
}
}
public boolean onMarkerClick(Marker marker) {
//marker is clicked so send a call to the activity like this
mLocation.onMarkerClick(marker);
return true;
}
在活动中确保您实现了界面,在这种情况下它将是MapListeners
然后当点击标记时,您创建的onMarkerClick
方法被称为
public void onMarkerClick(Marker m) {
//do something
}
答案 2 :(得分:0)
这样做:
public class MyFragmentOne extends Fragment{
@Override
onResume()
{
//Do the complex task
((MyActivity)getActivity()).fragmentTaskCompleted();
}
}
public class MyActivity extends Activity
{
public void fragmentTaskCompleted()
{
//Show second fragment
}
}