我是初学者
当我在方法之外创建Intent myIntent实例时,我似乎无法使用getExtra(),我能够在我称之为callEditActivity()的方法中使用它
但是,我试图将字符串值(img0,img1 ...等)传递给String Array StringGalImages;我无法想象如何;我在CallEditActivity中尝试过this.img但是没有传递值。
我还在CallEditActivity中尝试了显式网址img0 =“www.something.com/image.jpg”,并且无法将其传递给数组。
只有在方法外部初始化img0时才有效,但我不能这样做getExtra,我不得不在CallEditActivity中使用getExtra。
那么我怎样才能从getExtra获取到String Array的值?
public class ImageAdapter1 extends PagerAdapter {
Context context;
private String img0;
private String img1;
private String img2;
private String img3;
private String img4;
public void callEditActivity() {
Intent myIntent = new Intent(context, BirdsGalleryActivity.class);
img0 = myIntent.getExtras().getString("IMG0");
img1 = myIntent.getExtras().getString("IMG1");
img2 = myIntent.getExtras().getString("IMG2");
img3 = myIntent.getExtras().getString("IMG3");
img4 = myIntent.getExtras().getString("IMG4");
}
private String[] StringGalImages = new String[] {
img0,img1,img2,img3,img4
};
答案 0 :(得分:1)
好的,我做到了:
public class ImageAdapter1 extends PagerAdapter {
Context mContext;
private String img0;
private String img1;
private String img2;
private String img3;
private String img4;
public void callEditActivity() {
Intent intent = ((Activity) mContext).getIntent();
this.img0 = intent.getExtras().getString("IMG0");
this.img1 = intent.getExtras().getString("IMG1");
this.img2 = intent.getExtras().getString("IMG2");
this.img3 = intent.getExtras().getString("IMG3");
this.img4 = intent.getExtras().getString("IMG4");
((Activity) mContext).setResult(((Activity) mContext).RESULT_OK,
intent);
((Activity) mContext).finish();
}
private String[] StringGalImages = new String[] {
img0,img1,img2,img3,img4
};
但是现在我怎样才能将imgNs传递给数组StringGalImages?
答案 1 :(得分:0)
您刚刚使用此行创建了新的Intent
:
Intent myIntent = new Intent(context, BirdsGalleryActivity.class);
如何应用附加功能?当你创建新的Intent
时,你正在设置额外内容,而不是获取/获取......只有null
。你的代码可能更“不完整”(在发布前剪切?),因为行:
img0 = myIntent.getExtras().getString("IMG0");
创建Intent
之后,应该为未设置的额外内容投放NPE,您正试图getString
编辑:
从额外内容中获取后创建新数组(即使您发布此代码无法实现...)
StringGalImages = new String[] {
img0,img1,img2,img3,img4
};
或者如果你总是在数组中有固定数量的项目,你可以使用
StringGalImages[0] = myIntent.getExtras().getString("IMG0");
StringGalImages[1] = myIntent.getExtras().getString("IMG1");
...
StringGalImages
声明应粘贴在方法
答案 2 :(得分:0)
你正在创建新的Intent,然后新的意图没有你在BirdsGalleryActivity中添加的额外内容。您需要获得放置的BirdsGalleryActivity的意图(putString)。
我认为在BirdsGalleryActivity中你需要getIntent()并设置你的额外内容,并将这个意图传递给Adapter。