2014-11-14 29 views
4

我想一個位圖通過從一個片段到另一個 - 和現在用的這個帖子作爲指導:的Android - getIntent()從片段

send Bitmap using intent Android

什麼我有麻煩在接收活動片段中使用getIntent()。它不承認該方法。在那裏有一些帖子說它不可能在片段中使用getIntent()...但是必須有一種方法?代碼應該放在主機活動中嗎?

這裏就是我想:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    String filename = getIntent().getStringExtra("image"); 
    try { 
     FileInputStream is = this.openFileInput(filename); 
     imageBitmap = BitmapFactory.decodeStream(is); 
     is.close(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

回答

16

您可以使用getIntent()Fragments,但您需要先撥打getActivity()。像getActivity().getIntent().getExtras().getString("image")可以工作。

0

如果你想獲得意圖數據,你必須調用方法getArguments(),這與演員返回Bundle

3

並不是說你不能傳遞數據,而是你不想要的。

從尾數documentation

通常你會想要一個片段與另一個通信, 例如更改基於用戶事件的內容。全部 片段與片段之間的通信通過關聯的 活動完成。兩個碎片不應該直接通信。

如果你看看Fragment文檔,它應該引導你如何做到這一點。

+2

給這個贊成票不是因爲它解決了問題,而是恰當的方法。您應該使用該活動作爲讓片段彼此通信的「媒介」。 – ChallengeAccepted 2014-11-14 23:21:54