我试图通过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)
}
答案 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");
}
}