我是Android新手。我想做的是愚蠢的吗? 我在活动(EditPhoto)中构建了一个intent,如下所示:
//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);
我正试图从另一个活动(ImportPhoto)的片段(FirstFragment)接收它,如下所示:
// 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);
由于片段类是静态的,它说“不能从类型Activity”中对非静态方法getIntent()进行静态引用。
我尝试使用bundle并将参数设置为fragment但又遭遇同样的问题。
另外,我已经尝试了getActivity()。getIntent ....并且还像这样(#ImportPhoto)getActivity())。getIntent ...两种方式都运行应用程序但崩溃了。
任何形式的帮助将不胜感激。 提前谢谢。
答案 0 :(得分:0)
你正在犯这个错误,你不会向碎片发送意图。
创建片段时,您可以执行此类操作
Fragment fragment = new FirstFragment();
fragTransaction.add(fragment,null).commit;
创建片段时,通过将类转换为片段来创建扩展片段的类的实例
FirstFragment first = (FirstFragment)fragment;
然后在您的FirstFragment类中创建一个方法来接收照片或使用您刚创建的first
值访问它的任何广告
first.setPhoto(image);
任何时候你需要一个片段来与一个活动进行通信,你需要从片段here读取片段来创建一个回调活动