我正在嘗試爲應用程序創建雙窗格/單個窗格設置。在我把所有的內臟放入碎片之前,它工作得很好,我不知道是什麼導致它不能工作。當我進行方向變更時,問題就在發生。起初,它不是由於某種原因重新創建視圖。它會調用onCreateView,但我無法獲得視圖內的列表視圖的處理,並得到空(我知道我有佈局正確的風景和肖像,因爲它在縱向和橫向工作,如果它開始在那裏)。所以,我所做的是將setRetainInstance添加爲true,認爲這可以解決我的問題。那麼,現在我得到了沒有發現身份證的其他問題。Android碎片未找到id爲id
我認爲現在發生的事情是,它試圖將自己重新附加到方向改變之前的ID中,並且它不像現在在不同的佈局上那樣存在。我試着創建一個新的片段並添加它,但這也不起作用。我邊緣拉着我的頭髮試圖與Android的工作有思想片段系統,幾乎不可能合作。任何幫助,將不勝感激。下面是相關代碼
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.study_guide);
//Create The Ad Service
//Check to see if the view is landscape or portrait
if (this.findViewById(R.id.singlePaneStudyGuide) != null) {
mDualPane = false;
} else if (this.findViewById(R.id.doublePaneStudyGuide) != null) {
mDualPane = true;
}
LinearLayout layout = (LinearLayout)findViewById(R.id.addbox);
adView = new AdView(this,AdSize.SMART_BANNER,"a1511f0352b42bb");
layout.addView(adView);
AdRequest r = new AdRequest();
r.setTesting(true);
adView.loadAd(r);
//Inflate Fragments depending on which is selected
//if (savedInstanceState == null) {
FragmentManager fm = this.getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
SGListFragment newFrag = new SGListFragment();
if (mDualPane == true) {
ft.add(R.id.sgScrollContainer, newFrag, "SgListView").commit();
} else {
ft.add(R.id.singlePaneStudyGuide, newFrag, "SgListView").commit();
}
fm.executePendingTransactions();
//}
}
我用盡尋找與該片段經理片段和重新分配給不同的佈局,但由於某種原因,它仍然在尋找舊的。
請發表您的代碼 – Kerry 2013-02-17 08:22:44
也請添加study_guide.xml的內容爲縱向和橫向 – 2013-02-18 17:41:30