所以我正在构建一个利用视图寻呼机代码的Android应用程序。视图寻呼机的第一个视图是一个列表,用户可以在其中选择一个并查看有关用户所选项目的更多详细信息。我已经设法使用片段内部片段方法成功完成了这项工作。
我目前的问题是视图寻呼机的第三个视图。第三个视图显示了在第一个视图中完成的操作的摘要,然后用户可以单击一个按钮,该按钮将用另一个片段替换当前的第三个视图。我使用的代码与我在第一个视图中使用的代码相同,即:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.cart_fragment_layout, container, false);
btn_1 = (Button) rootView.findViewById(R.id.btn_1);
btn_1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
fm = getChildFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
CF = new CustomFragment();
ft.addToBackStack("fragment_a");
ft.add(R.id.fragment_custom_container, CF, "custom_fragment1");
ft.commit();
fm.executePendingTransactions();
}
});
return rootView;
}
片段容器的onCreateView代码如下:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
try{
rootView = inflater.inflate(R.layout.cart_container, container, false);
fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
CF = new CustomFragment();
Bundle arguments = new Bundle();
ft.addToBackStack("somewords");
ft.add(R.id.fragment_custom_container, CF, "custom_fragment");
CF.setRetainInstance(true);
ft.commit();
fm.executePendingTransactions();
}
catch(Exception E)
{
E.printStackTrace();
System.out.println("exception:"+E.getMessage());
}
return rootView;
}
而容器的xml布局文件如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/ll_fragment_custom_layout"
android:background="#fff">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/fragment_custom_container"
/>
</LinearLayout>
但是代码不起作用,我收到了异常:
05-07 12:29:54.570: E/AndroidRuntime(7365): java.lang.IllegalArgumentException: No view found for id 0x7f060045 (com.example.fragmentname:id/fragment_cart_container) for fragment fragmenta{42bae2a0 #0 id=0x7f060045 fragment b}
我做错了吗?