2

膨脹我有一個FragmentActivity其中設置與3個標籤的主佈局。每個選項卡都有自己的片段,這些片段是自己的主佈局佈局。如何設置數據到佈局由一個片段

例如,三個片段之一:

public class Fragment1 extends Fragment { 

    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    if (container == null) { 
      return null; 
     } 
    return inflater.inflate(R.layout.fragment1, container, false); 
    } 
} 

當我添加的所有片段,並連接它們與標籤一切正常。當我點擊tab1時,Fragment1的佈局顯示,當我點擊Tab2時,Fragment2的佈局顯示。

問題是,當我想改變該膨脹的佈局中的東西(例如在fragment1佈局中執行setText到textView)時,我在該行中收到一個NullPointerException,並且應用程序停止。

這不起作用:

TextView test = (TextView) findViewById(R.id.fragmentOneText1); 
test.setText("Test text!"); 

如何數據集虛增佈局?

回答

3

你必須使用LayoutInflater第一虛增您的具體片段的佈局,並在您的片段映射控制

@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

     View fragmentView = inflater.inflate(R.layout.R.layout.fragment1, container, false); 
     TextView text = (TextView) fragmentView.findViewById(R.id.fragmentOneText1); 
     mTextNoResult=(TextView)fragmentView.findViewById(R.id.text_noresult); 
     return fragmentView; 
} 
+0

能否請你解釋這一點呢?我不明白這與LayoutInflater。我需要在哪裏使用它? – Cristiano

+0

用我的代碼替換你的'onCreateView()',LayoutInflater會將特定的佈局(fragment1)膨脹到你的Fragment。 –

+0

它的工作原理!我只想問你一個問題。如何將數據從FragmentActivity傳輸到Fragment?在FragmentActivity中生成的結果需要在該膨脹的佈局中顯示。謝謝! – Cristiano

相關問題