在ListView中显示Android地图标记

时间:2013-09-25 19:09:55

标签: android android-listview google-maps-markers

我正在尝试显示包含所有地图标记标题和片段的列表视图。除了显示标记信息的数据没有正确显示外,我一切正常。有什么帮助吗?

import java.util.ArrayList;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import com.google.android.gms.maps.model.Marker;

public class FarmMarketList extends Activity
{
    ListView marketList;
    ArrayList<Marker> markets;
    ArrayAdapter<Marker> listAdapter;

    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.farm_market_list);
        marketList = (ListView) findViewById(R.id.listFarmMarkets);

        markets = RSFM.list;

        listAdapter = new ArrayAdapter<Marker>(FarmMarketList.this, android.R.layout.simple_list_item_1, markets);
        marketList.setAdapter(listAdapter);
    }
}

以下是我在其他活动中添加标记的位置:

for(int i = 0; i < Lat.length; i++)
      {
          Marker marker = map.addMarker(new MarkerOptions()
            .position(new LatLng(Lat[i], Lon[i]))
            .title(Market[i])
            .snippet(Address[i])
            .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)));
          list.add(marker);
      }

以下是我的列表视图中数据的显示方式。 enter image description here

1 个答案:

答案 0 :(得分:0)

它就像你写的那样工作。它显示每行中toString()个对象的Marker值,因为这是ArrayAdapter的默认行为。恰好toString()上的Marker对用户来说并不是特别有用。

创建您自己的ArrayAdapter<Marker>子类,覆盖getView()并根据Marker数据格式化您认为合适的行。