2016-06-21 39 views
0

我有一個活動相關的兩個動態片段之間串,我試圖通過使用捆綁的第一塊碎片一個文本到第二塊碎片,但我得到空指針異常。在兩個片段之間傳遞String是否正確?下面是我的代碼:獲得NullPointerException異常,同時通過兩個片段

第一塊碎片

public class FirstFragment extends Fragment { 

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



     View view = inflater.inflate(R.layout.content_main, container, false); 

     String text = "GetThisStringInSecondFragment"; 

     TextView txtView = null; 
     txtView = (TextView) view.findViewById(R.id.firstfragmenttext); 
     txtView.setText(text); 

     Bundle bundle = new Bundle(); 
     bundle.putString("HI", text); 

     return view; 
    } 


} 

第二塊碎片

public class SecondFragment extends Fragment { 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.content_secondmain, 
       container, false); 

     TextView txtView = null; 
     txtView = (TextView) view.findViewById(R.id.secondfragmenttext); 


     Bundle bundle = this.getArguments(); 
     String myInt = bundle.getString("HI"); 

     txtView.setText(myInt); 

     return view; 
    } 


} 

活動

public class MainActivity extends AppCompatActivity { 


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

     Button btnLoad = (Button) findViewById(R.id.btn_load); 

     View.OnClickListener listener = new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       FragmentManager fragmentManager = getFragmentManager(); 
       FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
       FirstFragment hello = new FirstFragment(); 
       fragmentTransaction.add(R.id.fragment_container, hello, "HELLO"); 
       fragmentTransaction.commit(); 

       FragmentManager fragmentManager2 = getFragmentManager(); 
       FragmentTransaction fragmentTransaction2 = fragmentManager2.beginTransaction(); 
       SecondFragment hello2 = new SecondFragment(); 
       fragmentTransaction2.add(R.id.fragment_container, hello2, "HELLO"); 
       fragmentTransaction2.commit(); 
      } 
     }; 

     btnLoad.setOnClickListener(listener); 

    } 


} 
+0

什麼是異常本身?請添加一個日誌。 –

+0

你沒有傳遞包到下一個片段 –

+0

_setArguments()_? – Piyush

回答

相關問題