2013-09-25 114 views
0

我想顯示列表視圖以及所有地圖標記標題和片段。除了顯示標記信息的數據沒有正確顯示之外,我的所有工作都已完成。任何幫助?在ListView中顯示Android地圖標記

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

+0

'markets = RSFM.list;'是一條很糟糕的路線。我看到'NullPointerException'即將到來。 –

回答

0

它正如你所寫的那樣工作。它顯示每行中Marker對象的toString()值,因爲這是ArrayAdapter的默認行爲。恰巧toString()Marker對用戶不是特別有用。

創建您自己的子類ArrayAdapter<Marker>,您可以覆蓋getView()並基於Marker數據格式化行數。