适配器类中的Intent的getExtra()

时间:2017-03-12 22:56:33

标签: android android-intent

我是初学者

当我在方法之外创建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

};

3 个答案:

答案 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。