Fragment 创建不了, XML 文件报错

来源:互联网 发布:js教学 编辑:程序博客网 时间:2024/05/21 03:18

碎片化 Fragment 已经在 Android 开发中越来越受到重视,能够匹配不同屏幕,经常的做法是配置小屏幕设备进入的 Activity 之后的 XML 文件,使其加载 Fragment ,这样,在 Fragment 里面写的代码,无论是大屏幕还是小屏幕能用到相同的功能。

比如在 Activity 文件下如此:

public class FirstActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_first);}}

在相应的 XML 文件中添加这个组件:

<fragment         android:id="@+id/first_fragment"        android:name="com.xxx.FirstFragment"        android:layout_height="match_parent"        android:layout_width="match_parent"        />

同时需要创建一个继承自 Fragment 的类,放置所有你需要放置的代码:

public class FirstFragment extends Fragment{}

但是!但是!运行会报错:

【Java.lang.RuntimeException: Unable to start Activity... Binary XML File...】

看到这里,第一个反应就是 XML 文件出错了。没错,当 XML 文件中的 "android:name=" 填错的时候会有这样的现象,可更容易被忽略的是,Fragment 代码下缺少了必要的东西,那就是复写的 onCreateView 方法。没有这个方法,就不会创建 Fragment  与其有关的 XML 文件之间的联系,更不用说 Activity 的 XML 直接引用 Fragment 的 XML 文件了。

所以需要补上:

public class FirstFragment extends Fragment{@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// TODO Auto-generated method stubView view = inflater.inflate(R.layout.first_fragment, container, false);return view;}}



0 0
原创粉丝点击