2014-05-22 58 views
0

注意我已經檢查了非常多這個問題的許多「重複」,並且它們都不符合法案,所以請不要將其標記爲重複。findFragmentByID()在創建後立即使用容器ID返回空值

我修改了默認的嚮導創建的應用程序(Android Studio中),試圖找到佔位符片段創建後,像這樣(添加唯一的語句是Log線):

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    if (savedInstanceState == null) { 
     getSupportFragmentManager().beginTransaction() 
       .add(R.id.container, new PlaceholderFragment()) 
       .commit(); 
    } 

    Log.d("", "Found fragment: " + getSupportFragmentManager().findFragmentById(R.id.container)); 
} 

然而日誌只是打印:

找到的片段:空

根據我所閱讀文檔的的d回答類似的問題,它應該工作。這是怎麼回事?

回答

2

片段事務尚未執行,但只是計劃稍後執行。

在應用程序生命週期中等待super.onStart(),如果您不耐煩,請致電executePendingTransactions()

相關問題