我想在view中添加一個fragment。
FragmentManager fragMgr=getSupportFragmentManager();
feed_parser_activity content=
(feed_parser_activity)fragMgr.findFragmentById(R.id.feedContentContainer);
FragmentTransaction xaction=fragMgr.beginTransaction();
if (content==null || content.isRemoving()) {
content=new feed_parser_activity(item.getLink().toString());
xaction
.add(R.id.feedContentContainer, content)
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
.addToBackStack(null)
.commit();
Log.e("Abstract", "DONE");
}
當上面這段代碼執行後,在 debug中顯示錯誤:
12-25 19:45:19.040: ERROR/AndroidRuntime(2835): java.lang.IllegalArgumentException: No view found for id 0x7f080011 for fragment feed_parser_activity{41882f50 #2 id=0x7f080011}
feed_parser_activity是一個 Fragment,在xml中設置 Fragment 布局。
我用FragmentActivity來控制擁有feed_parser_layout布局的Fragment Layout。
以上的設置為什不正確呢?
在setContentView()
中指定了錯誤的布局,setContentView()
在 FragmentActivity的onCreate()
方法中。id傳遞到FragmentTransaction.add()
,在你的例子中R.id.feedContentContainer
必須是setContentView()
中指定的布局的子類。所以就不用onCreate()
方法。