来自getIntent()的NullPointerException .getExtras()。getString(“to”)

时间:2011-04-09 06:32:52

标签: android

InboxDetailActivity.java

Intent i = new Intent(InboxDetailActivity.this,Compose.class);
Bundle b = new Bundle();
b.putString("To", ConstantData.inbox_from);
Log.d("From Value", ConstantData.inbox_from);
b.putString("Subject", "RE:" + ConstantData.inbox_subject);
Log.d("Subject Value", ConstantData.inbox_subject);
b.putString("FromId", ConstantData.inbox_fromid);
Log.d("From Id Value",ConstantData.inbox_fromid);
i.putExtras(b);
startActivity(i);

Compose.java

Intent i = getIntent();
Bundle b = i.getExtras();

to = b.getString("To");
subject = b.getString("Subject");
toId = b.getString("FromId");

我在NullPointerException

获得to = b.getString("To");

3 个答案:

答案 0 :(得分:1)

Bundle b = i.getExtras();

getExtras()返回null

答案 1 :(得分:0)

同意约翰的答案,增加可能的解决方案。

您正在做的是创建一个包,在其中插入值,然后传递此包。 而且你只是使用它的密钥逐个获取所有值。

我正在使用bundle,但我只是使用putExtra方法直接添加所需的值。到目前为止我没有遇到任何问题。我建议你使用put extra并检查它是否有效。

我想知道是什么让你以这种方式应用于捆绑包?你刚刚在某处读过它并开始应用这种方法吗?或者你有一些选择,经过一些考虑,你发现应用这种方法更好,或者你的要求说明了这一点。因为通常我和我的同伴不使用捆绑并直接传递附加内容。这对我来说每次都有用。

答案 2 :(得分:0)

使用此而不是捆绑

        i.putString("To", ConstantData.inbox_from);
        Log.d("From Value", ConstantData.inbox_from);
        i.putString("Subject", "RE:" + ConstantData.inbox_subject);
        Log.d("Subject Value", ConstantData.inbox_subject);
        i.putString("FromId", ConstantData.inbox_fromid);
        Log.d("From Id Value",ConstantData.inbox_fromid);

并在另一个班级......

        to = getIntent().getString("To");