2

我正在尝试将整数数组传递给 baseadapter,这样 A.class 会将整数数组传递给 B.class 中的 BaseAdapter。这是我在 A.Class (发件人)中传递整数数组的方式:

int [] mThumb = {
                     R.drawable.image1_thumb, R.drawable.image2_thumb, R.drawable.image3_thumb,
                     R.drawable.image4_thumb, R.drawable.image5_thumb, R.drawable.image6_thumb,
                     R.drawable.image7_thumb, R.drawable.image8_thumb, R.drawable.image9_thumb,
                     R.drawable.image10_thumb};


        Bundle b=new Bundle();
        b.putIntArray("mThumbSent", mThumb);
        Intent startSwitcher = new Intent(A.this, B.class);
        startSwitcher.putExtras(b);

在我的活动 B 中的 BaseAdapter 中:

public class ImageSwitch1 extends Activity Extends ...{
onCreate....
[redacted]
}

private ImageSwitcher mSwitcher;


public class ImageAdapter extends BaseAdapter {

   Bundle b=this.getIntent().getExtras();
    int[] mThumb = b.getIntArray("mThumbSent");

     public ImageAdapter(Context c) {

        mContext = c;
    }

    public int getCount() {

    return mThumb.length; //this used to say return mThumbIds

    }

    public Object getItem(int position) {
        return position;
    }

    public long getItemId(int position) {
        return position;
    }

    public View getView(int position, View convertView, ViewGroup parent) {

        ImageView im = new ImageView(mContext);
        im.setImageResource(mThumb[position]);
        im.setAdjustViewBounds(true);
        im.setLayoutParams(new Gallery.LayoutParams(
        LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
        im.setBackgroundResource(R.drawable.picture_frame);


        return im;
    }

    private Context mContext;

}
}

现在显然上面的代码不正确,我不能在 imageadapter 中使用 getintent。但这是我试图完成的一个说明性示例,并且想知道如何通过意图将变量或数组传递给 BaseAdapter,如果可能的话。

4

2 回答 2

2

getIntent() 将在您的 B 类中可用。

您可以将 Bundle 或整数数组放入 ImageAdapter 的构造函数中

public class ImageAdapter extends BaseAdapter {

    public ImageAdapter(Context c, Bundle b) {
        int[] mThumb = b.getIntArray("mThumbSent");
        mContext = c;
    }

    .....
}

在您的活动 B 中以这种方式构造您的适配器:

ImageAdapter adapter = new ImageAdapter(yourcontext,getIntent().getExtras());

您想在哪里使用您的适配器?在列表视图中?那么继承 ListAdapter 而不是 BaseAdapter 就足够了。

于 2011-08-22T15:22:42.840 回答
1

更新 ImageAdapter 的构造函数以接受整数数组,如下所示:

int[] mResources;

public ImageAdapter(Context c, int[] resources) {
    mResources = resources;
    mContext = c;
}

然后在 Activity 中初始化 Adapter 时,只需将额外的 int 数组传递给它:

ImageAdapter adapter = new ImageAdapter(context, intArray);
于 2011-08-22T15:13:06.507 回答