2013-04-10 2 views
0

Я новичок в Android. Является ли то, что я пытаюсь сделать, это глупо? У меня есть построить намерение в деятельности (EditPhoto) следующим образом:Как создать намерение в действии и получить от фрагмента

  //Defining intent for loading image to the edit page 
      Intent recentPhoto = new Intent(this, ImportPhoto.class); 

      //Defining byte stream of image chosen 
      ByteArrayOutputStream bs = new ByteArrayOutputStream(); 
      bm.compress(Bitmap.CompressFormat.PNG, 50, bs); 

      //Transforming image to EditPhoto class in byte stream 
      recentPhoto.putExtra("byteArray", bs.toByteArray()); 

      //Starting the intent 
      startActivity(recentPhoto); 

И я пытаюсь получить его из фрагмента (FirstFragment) от другой деятельности (ImportPhoto), как показано ниже:

   // Getting the image back imported from EditPhoto page 
       final Bitmap photo = BitmapFactory.decodeByteArray(getIntent(). 
            getByteArrayExtra("byteArray"), 
         0,getIntent().getByteArrayExtra("byteArray").length); 

     //Displaying the image in the image viewer 
     viewGalleryImages.setImageBitmap(photo); 

Поскольку класс фрагмента статичен, он говорит: «Невозможно сделать статическую ссылку на нестатический метод getIntent() из типа Activity».

Я попытался использовать пучки и задать аргументы для фрагмента, но снова страдает от одной и той же проблемы.

Кроме того, я попробовал getActivity(). GetIntent ...., а также листинг getActivity, как это ((ImportPhoto) getActivity()). GetIntent ... Оба способа запуска приложения, но сбой.

Любая помощь будет оценена по достоинству. Спасибо заранее.

ответ

0

Вы идете об этом неправильно, вы не отправляете намерения в фрагменты.

При создании фрагмента вы делаете что-то вроде этого

Fragment fragment = new FirstFragment(); 
fragTransaction.add(fragment,null).commit; 

При создании фрагмента создать экземпляр класса, который расширяет фрагмент литья класса фрагмента как этот

FirstFragment first = (FirstFragment)fragment; 

, то в вашем классе FirstFragment создайте метод, чтобы сделать снимок или любое другое объявление, используя значение first, которое вы только что создали

first.setPhoto(image); 

В любое время требуется фрагмент для связи с деятельностью, необходимой для создания обратного вызова активности из фрагмента, считываемого на фрагменты here

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