Fragment 創建不了, XML 文件報錯

碎片化 Fragment 已經在 Android 開發中越來越受到重視,能夠匹配不同屏幕,經常的做法是配置小屏幕設備進入的 Activity 之後的 XML 文件,使其加載 Fragment ,這樣,在 Fragment 裏面寫的代碼,無論是大屏幕還是小屏幕能用到相同的功能。

比如在 Activity 文件下如此:

public class FirstActivity extends Activity {

	@Override
	protected 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{

	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		View view = inflater.inflate(R.layout.first_fragment, container, false);
		return view;
	}

	
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章