2016-03-16 38 views
0

片段類的callBack方法onCreateView()在繪製該片段上的視圖之前被調用,因此我創建了片段類的子類,並在其中創建了一個ImageView變量。在MainActivity中調用imageView片段

之後,我在方法onCreateView()中將layoutView中存在的imageView分配給此imageView。

我有MainActivity我在其中添加此片段(使用xml)。

因此,當我運行應用程序時,我可以看到在活動中繪製的片段,這意味着片段的onCreateView已正確調用,因此ImageView不是空值。

,但是當我在MainActivity使用的ImageView我得到一個空指針異常也就是在那裏我得到異常的代碼:

fragmentB = new FragmentB(); 
imageView = fragmentB.imageView; 

,當我使用:

fragmentB = (FragmentB) getFragmentManager().findFragmentById(R.id.fragment2); 

我得到了ImageView成功。

我想讓你解釋爲什麼它在構造函數中使用時返回一個空指針?我不知道爲什麼。

回答

0

因爲你的imageView是在xml中,當你通過id找到Fragment時,你會得到包含imageView的Fragment的佈局。

當您使用構造函數時,您只是實例化Fragment,但是將它鏈接到xml文件的onCreateView不會被調用。

這就是說,我不認爲這是正確的方式引用imageview。

+0

那麼引用它的正確方法是什麼? –

相關問題