Android应用程序中的捆绑问题

时间:2011-08-22 04:42:12

标签: android bundle

我试图通过bundle将一个drawables列表从一个活动传递到另一个活动。我假设原始数组只能通过android中的bundle传递,我这样做。不确定这是不是真的,但这不是重点。关键是尽管我付出了最大的努力,但我得到的是NullPointerException。这是我的A类代码(发件人):

private void startSwitcher() {
            int[] mThumb = {
                     R.drawable.lp_image1_thumb, R.drawable.lp_image2_thumb, R.drawable.lp_image3_thumb,
                     R.drawable.lp_image4_thumb, R.drawable.lp_image5_thumb, R.drawable.lp_image6_thumb,
                     R.drawable.lp_image7_thumb, R.drawable.lp_image8_thumb, R.drawable.lp_image9_thumb,
                     R.drawable.lp_image10_thumb};

            Bundle b=new Bundle();
            b.putIntArray("mThumbSent", mThumb);


            Intent startSwitcher = new Intent(A.this, ImageSwitch1.class);
            startSwitcher.putExtras(b);
            startActivity(startSwitcher);

以下是接收器中的代码:

public class ImageSwitch1 extends Activity{
 Bundle b=this.getIntent().getExtras();
     int[] mThumb = b.getIntArray("mThumbSent");

Public Void onCreate...(redacted)
}

2 个答案:

答案 0 :(得分:2)

将您的代码移到onCreate中。 this.getIntent()将始终返回NPE,因为除非创建活动,否则您将无法获得意图。

 public class ImageSwitch1 extends Activity{

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

  }

答案 1 :(得分:0)

您需要将代码放入onCreate。

试一试:

public class ImageSwitch1 extends Activity {

    int[] mThumbs;

    public void onCreate(Bundle icicle) {
        mThumbs = getIntent().getExtras().getIntArray("mThumbSent");
    }

}