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

Смежные вопросы