0

最初fragment加载时它具有布局:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View view = null;
    view = inflater.inflate(R.layout.authenticate, null);
    return view;
}

稍后fragment我正在执行一个功能,它将调用startActivityForResult(intent, 1);

如果响应成功,我想用另一个布局替换片段的布局,比如:R.layout.success

onActivityResult()应该写什么。

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    // Some code
    if(success){
        // WHAT TO CODE HERE TO REPLACE THE LAYOUT R.layout.authenticate TO R.layout.success
    }

}
4

1 回答 1

0

您可以在调用FragmentfromActivity时传递索引Bundle

Bundle bundle=new Bundle();
bundle.putInt("index", 0);//pass 0 for the first time and pass 1 from onActivityResult
MyFragment frag=new MyFragment();
frag.setArguments(bundle);

Fragment获取索引并相应地加载布局

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
     int index=getArguments().getInt("index");
     View view = null;
     if(index == 0) {
        view = inflater.inflate(R.layout.authenticate, null);
     } else {
        //another layout to load
     }
     return view;
}
于 2013-10-21T10:50:32.653 回答