2014-11-14 56 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