这是第一个 Activity 中的代码:
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);
这是打开的 Activity 中的代码:
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,我已经测试了代码,在第一个 Activity 中它不为空,在第二个 Activity 中 bundle 参数不为空,但第二个 Activity 中 bundle 内的字符串 Venue_Name 为空。有人知道我哪里出错了吗?
提前致谢
最佳答案
问题是您仅将 Bundle
对象传递给 extras,而不是字符串数据。
您需要先检索您传递的bundle,然后才能获取bundle中添加的数据:
Bundle Parameters = i.getBundleExtra("UserEntries");
<小时/>
另一种方法是使用 putExtra(String name, int value)
直接将字符串传递到您的 Intent ,并在第一个 Activity 中删除此 UserEntries
对象。
关于java - 包内的字符串为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21941311/