Java extras bundle返回null值

时间:2012-06-30 22:48:47

标签: java android android-intent bundle

我的包正在为包含的附加内容返回空字符串。不是NPE,实际的“空”值。关于为什么会发生这种情况的任何想法?

新捆绑

                        String u = null;
                        Bundle b = new Bundle();
                        Intent i = new Intent(view.getContext(), ******.class);
                        u = api.companyData.link.get(position);
                        Log.d("URL++++++++++++++++++++", u);
                        b.putString("graphic", api.companyData.graphic);
                        b.putString("name", api.companyData.name);
                        b.putString("url", u);
                        i.putExtras(b); 
                        startActivity(i);

日志语句正在返回网址。

捆绑收件人

   Bundle extras = getIntent().getExtras();
    if(extras !=null) {
         Log.d("EXTRAS", extras.getString("name")+extras.getString("graphic")+extras.getString("link"));

D / EXTRAS(4698):nullnullnull

2 个答案:

答案 0 :(得分:1)

直接将对象放入意图中,例如

Intent i = new Intent(view.getContext(), ******.class);
i.putExtra("graphic", ...);
i.putExtra("name", ...);
i.putExtra("url", ....);

然后在接收者活动中:

getIntent().getStringExtra("graphic");
getIntent().getStringExtra("name");
getIntent().getStringExtra("url");

答案 1 :(得分:1)

我总是这样做:

Intent i = new Intent(view.getContext(), ******.class);
i.putExtra("url", u);

然后

String url = getIntent().getStringExtra("url");

我从来没有按照你自己的方式尝试过,但如果putExtras(Bundle)代表{{1}},则会说:

  

向intent添加一组扩展数据。钥匙必须包括一个   包前缀,例如应用程序com.android.contacts将使用   名称如“com.android.contacts.ShowAll”。

你不这样做可能是失败的原因。