bundle中的字符串为null

时间:2014-02-21 17:36:13

标签: java android android-intent bundle getstring

以下是第一项活动中的代码:

Bundle UserEntries = new Bundle();
UserEntries.putString("Venue_Name", VenueName);
UserEntries.putString("Event_Name", EventName);
UserEntries.putString("Category", Category);
UserEntries.putString("Region", Region);
Intent openGetData = new Intent(SearchDatabase.this, GetData.class);
openGetData.putExtra("UserEntries", UserEntries);
startActivity(openGetData);

这是激活的代码:

Intent i = getIntent();
    Bundle Parameters = i.getExtras();
    url = "http://192.168.1.74/android_connect/get_venues.php";
    VenueName = Parameters.getString("Venue_Name");
    EventName = Parameters.getString("Event_Name");
    Category = Parameters.getString("Category");
    Region = Parameters.getString("Region");
    if(VenueName != null){
        phpExtension = ("?Venue_Name=" + VenueName);
    }
    url = (url + phpExtension);

然而,Venue_Name返回null,我已经测试了代码,并且在第一个活动中它不是null,而在第二个活动中bundle参数不是null,但是第二个activity中的bundle中的字符串Venue_Name是。任何人都有任何想法我错了吗?

提前致谢

2 个答案:

答案 0 :(得分:1)

问题是你只是将你的Bundle对象传递给你的额外内容,而不是String数据。

您需要首先检索您传递的包,然后您将能够获取包中添加的数据:

Bundle Parameters = i.getBundleExtra("UserEntries");

<小时/> 另一种方法是使用putExtra(String name, int value)简单地将字符串直接传递给你的意图,并在你的第一个活动中删除这个UserEntries对象。

答案 1 :(得分:0)

在第一个活动中这样做 -

Intent openGetData = new Intent(SearchDatabase.this, GetData.class);
openGetData.putExtra("Venue_Name", VenueName);
openGetData.putExtra("Event_Name", EventName);
openGetData.putExtra("Category", Category);
openGetData.putExtra("Region", Region);
startActivity(openGetData);