2017-02-27 59 views
0

字符串時,我爲與推出的活動:片段錯誤正從活動

Intent intent = new Intent(
        getApplicationContext(), 
        Hosting.class 
      ); 
      intent.putExtra("host", item.getTitle()); 
      startActivity(intent); 

現在我有與標籤此活動5片段,在片段5我需要得到主機的字符串:

host = getArguments()。getString(「host」);

(在正常的活動我得到這個字符串getIntent().getStringExtra("host")但片段沒有工作......)

,但應用程序崩潰與:

java.lang.RuntimeException: An error occurred while executing doInBackground() 
         at android.os.AsyncTask$3.done(AsyncTask.java:325) 
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.os.Bundle.getString(java.lang.String)' on a null object reference 

爲什麼呢?這是我的第一個Android應用程序..

+0

碎片裏面的參數是不一樣的活動中捆綁。如果以編程方式插入片段,則可以將束傳遞給每個片段。另一方面,如果您通過xml插入它們,則必須通過片段管理器獲取它們,然後使用setter傳遞您的數據 – peshkira

+0

xml中的動態字符串不好主意我想,如何使用bundle? – user3477026

回答

2

它可能是你沒有設置你的片段的參數的host串額外的創作。你可以做到這一點或在您的片段代碼只是繼續使用getIntent().getStringExtra("host")先調用getActivity()

host = getActivity().getIntent().getStringExtra("host") 
+0

非常感謝你,祝你有個美好的一天=) – user3477026

0

當你使用片段並想要在片段和活動之間進行交互時,即來回解析數據,檢查點擊等,通常建議製作一個接口和在活動中實施。

僅供參考,您可以檢查this video ,這是非常有幫助的