public static final String访问时返回null

时间:2014-02-17 23:39:07

标签: android

我被一个公共静态结束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);
            }
        }
    );

我收到一个空指针异常,然后坐下来抓我的头。

提前谢谢你,我觉得这么简单的问题很傻。

2 个答案:

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