我正在尝试制作一个包含大量标记的Google地图应用,当用户点击其中一个标记时,会打开一个新活动,显示该标记的名称和一些其他信息。我计划放置按钮和东西,所以我认为infowindow不会削减它。
我的代码是一团糟,因为我只是新手,只要他们工作就放代码,所以我只是展示onMarkerClick部分(我遇到问题所以它赢得了#t太混乱了
public boolean onMarkerClick(Marker loc) {
Intent intent = new Intent(this, stars.class);
Bundle bundle = new Bundle();
for (index3=0; index3 < array1.length; index3++) { //array1 stores all of my markers' id
if (loc.getTitle().equals(array5[index3])){ //array5 stores all of my markers' names
bundle.putString("name", loc.getTitle());
intent.putExtras(bundle);
startActivity(intent);
}
}
return true;
}
和我的stars.java
public class stars extends MapsActivity {
String sname;
TextView tv;
Bundle bundle = getIntent().getExtras();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_stars);
TextView tv = (TextView)findViewById(R.id.tv);
if(!bundle.isEmpty()){
sname = bundle.getString("name");
}
tv.setText(sname);
}
}
当我运行此操作时,我收到此错误&#34;尝试调用虚拟方法&#39; android.os.Bundle android.content.Intent.getExtras()&#39;在null对象引用&#34; 我尝试将array5公开然后在stars.java中使用它,但它告诉我它是null。也试过试验捆绑但我继续得到空错误的事情
答案 0 :(得分:0)
我会在onCreate方法中使用这个语句:
Bundle bundle = getIntent().getExtras();
并检查空值
if (bundle != null) {
String sname = bundle.getString("name");
}