我被一个公共静态结束String的实例感到困惑,该结构在引用时返回null。我已经使用了这个确切的构造数百次但是这次看不出我可能做的不同。代码如下:
public class NSNItemDisplayActivity extends ExpandableListActivity
implements LoaderManager.LoaderCallbacks<Cursor>
{
public static final String NSN_ID_KEY = "NSN_ID_KEY";
...
}
通过执行此操作的代码引用:
card.setOnClickListener(new Card.OnCardClickListener() {
@Override
public void onClick(Card card, View view) {
Intent nsnListIntent = new Intent(
mContext,
NSNItemDisplayActivity.class);
Bundle bundle = nsnListIntent.getExtras();
bundle.putString(NSNItemDisplayActivity.NSN_ID_KEY, //Null Pointer Exception
card.getId());
mContext.startActivity(nsnListIntent);
}
}
);
我收到一个空指针异常,然后坐下来抓我的头。
提前谢谢你,我觉得这么简单的问题很傻。
答案 0 :(得分:2)
Intent nsnListIntent = new Intent(
mContext,
NSNItemDisplayActivity.class);
Bundle bundle = new Bundle()
bundle.putString(NSNItemDisplayActivity.NSN_ID_KEY, //Null Pointer Exception
card.getId());
nsnListIntent.PutExtra("", bundle);
mContext.startActivity(nsnListIntent);
//做这个伴侣
答案 1 :(得分:1)
这一行
bundle.putString(NSNItemDisplayActivity.NSN_ID_KEY
除了return null
bundle
之外,不会null
,而是根据您向我们展示的内容。首先初始化Bundle
Intent nsnListIntent = new Intent(mContext, NSNItemDisplayActivity.class);
Bundle bundle = new Bundle();
bundle.putString(NSNItemDisplayActivity.NSN_ID_KEY, card.getId());
您的extras
中没有Intent
来初始化此Bundle
,因为您只是在上一行创建它。
也许您的意思是从用于创建此extras
的{{1}}中的Intent
初始化它。在这种情况下,你会想要像
Activity