我在我的应用中使用自定义InfoWindow。我有两个与之相关的问题。
- 是否可以在InfoWindow
中制作多行代码段 醇>
假设我正在添加一些数据,我可以说当我点击标记时我需要显示LATTITUDE和LONGITUDE。通常,如果你在片段中设置这些值,它们就会显示在同一行上。我想在两行上展示它们。这可能吗
我用谷歌搜索多行片段,找不到任何有用的东西,所以提出了自定义InfoWindow的想法。
2.Below show是我的自定义InfoWindow,它给了我NullPointerException
从try-catch循环获取异常。我跟踪了一些我在谷歌搜索时找到的代码,但是它没有用。
private class MyCustomInfoWindow implements InfoWindowAdapter{
private View view;
public MyCustomInfoWindow(){
}
@Override
public View getInfoContents(Marker markr) {
// TODO Auto-generated method stub
return null;
}
@Override
public View getInfoWindow(Marker marker) {
// TODO Auto-generated method stub
view = getLayoutInflater().inflate(R.layout.mycustom_infowindow, null);
TextView marker_heading = (TextView)findViewById(R.id.marker_heading);
try{
String m_heading = marker.getId();
marker_heading.setText(m_heading);
}
catch(Exception exx){
Toast.makeText(getApplicationContext(), "getInfoWindow Error is " + marker_heading.length(), Toast.LENGTH_LONG).show();
}
return view;
}
}
我的自定义
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/marker_heading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:typeface="serif"
android:textStyle="bold"
/>
</LinearLayout>
使用Google Maps V2
有人可以告诉我哪里出错了。
答案 0 :(得分:2)
使用
TextView marker_heading = (TextView)view.findViewById(R.id.marker_heading);
初始化marker_heading TextView
个实例,因为TextView
位于mycustom_infowindow
布局内
答案 1 :(得分:1)
你应该替换这个
TextView marker_heading = (TextView)findViewById(R.id.marker_heading);
使用
TextView marker_heading = (TextView)view.findViewById(R.id.marker_heading);
答案 2 :(得分:1)
使用
TextView marker_heading = (TextView)view.findViewById(R.id.marker_heading);
你必须传递Views对象作为查找TextView
的id的引用