- xml文件中引用TopPreFragment 时报错
- 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">
<fragment
android:id="@+id/left_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.xxx.TopPreFragment" />
</LinearLayout>
- 错误信息:
- 问题原因:
Activity与Fragment 传值时用到了 setArguments(Bundle bundle)
Bundle bundle = new Bundle();
bundle.putString("good_id", good_id);
TopPreFragment pre = new TopPreFragment();
pre.setArguments(bundle);
在TopPreFragment 中 getArguments() 会导致
android.view.InflateException: Binary XML file line #7: Binary XML file line #7: Error inflating class fragment
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_top_pre, null);
initView(view);
//问题处在getArguments()这里
Bundle bundle = TopPreFragment.this.getArguments();
goodsid = bundle.getString("good_id");
return view;
}
- 解决方法
传递数据时,用静态变量替换.setArguments(bundle);