2016-04-26 17 views
2

に複数の場所を表示できませんintent.putExtra()を介して他のアクティビティからMapActivityに、そしてMapActivityに私の住所を渡そうとしています。私はジオコードを行っています。エラーはありませんが、実行すると位置は表示されません。誰かが私に行方不明または間違っていることを教えてもらえますか?Googleマップ

FYI:ListViewアクティビティからDisplayItemアクティビティ(すでに動作しています)にアドレスを渡しました。今、私はこれは私であるこの

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 

    int id = item.getItemId(); 
    //noinspection SimplifiableIfStatement 
    if (id == R.id.myMap) { 
     Intent intent = new Intent(ShoppingMall.this,MapsActivity.class); 
     //Intent.putExtra 

     startActivity(intent); 
    } 

    return super.onOptionsItemSelected(item); 
} 

intent.putExtra(MapsActivity.EXTRA_ADDRESS, adapter.getItem(position)[4]); 

を入れたいベローは私の他の活動(ListViewActivity

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      Intent intent = new Intent(ShoppingMall.this, Displayitem.class); 
      if (adapter.getItem(position).length > 0) { 

       intent.putExtra(Displayitem.EXTRA_ADDRESS, adapter.getItem(position)[4]); 
       intent.putExtra(MapsActivity.EXTRA_ADDRESS, adapter.getItem(position)[4]); 

      } 

      startActivity(intent); 
     } 
    }); 

ある

MapActivity

にそれを渡したいです MapActivity

public static final String EXTRA_ADDRESS ="address"; 
private Bundle extras; 
List<Address> location; 
double lati, lon ; 
. 
. 
. 
. 


private void getAddress(GoogleMap googleMap) { 

    try { 
     mMap = googleMap; 

     Intent intent = getIntent(); 
     extras = intent.getExtras(); 
     Geocoder geocoder = new Geocoder(this); 
     String address = extras.getString(this.EXTRA_ADDRESS); 
     location = geocoder.getFromLocationName(address, 1); 
     if (location.size() > 0) { 
      lati =location.get(0).getLatitude(); 
      lon =location.get(0).getLongitude(); 
      MarkerOptions options = new MarkerOptions() 
        .title("") 
        .position (new LatLng(lati, lon)); 
      mMap.addMarker(options); 
     } 

    }catch (Exception e){ 
     e.printStackTrace(); 

    } 
} 
@Override 
public void onMapReady(GoogleMap googleMap) { 
    mMap = googleMap; 
    getAddress(googleMap); 
    setUpMap(); 

} 

PS:初心者アンドロイド

答えて

0

にそれは地図上で示してい

Intent intent = new Intent(ShoppingMall.this, Mapactivity.class); 
      if (adapter.getItem(position).length > 0) { 

       intent.putExtra(Displayitem.EXTRA_ADDRESS, adapter.getItem(position)[4]); 
       intent.putExtra(MapsActivity.EXTRA_ADDRESS, adapter.getItem(position)[4]); 

      } 

      startActivity(intent); 
+0

....これを試してみてください。私は別のクラスを作ることはできますか? Like インテントの意図=新しいインテント(ShoppingMall.this、Mapactivity.class); および 意図インテント=新しいインテント(ShoppingMall.this、Displayitem.class); – Critako

+0

上記の例では、MapActivityコードとインテントがdisplayitemを渡します。だから、あなたは両方の別々のクラスを作ることができます。 –

+0

ええ、私は問題を認識し、私は私の質問を更新しています。あなたが理解して欲しい – Critako

0
private void addMarkersToMap() { 
    mMap.clear(); 
    for (int i = 0; i < private void addMarkersToMap() { 
mMap.clear(); 
for (int i = 0; i < location.size(); i++) {   
     LatLng ll = new LatLng(location.get(i).getPos().getLat(), location.get(i).getPos().getLon()); 
     BitmapDescriptor bitmapMarker; 
     switch (location.get(i).getState()) { 
     case 0: 
      bitmapMarker = BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED); 
      Log.i(TAG, "RED"); 
      break; 
     case 1: 
      bitmapMarker = BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN); 
      Log.i(TAG, "GREEN"); 
      break; 
     case 2: 
      bitmapMarker = BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ORANGE); 
      Log.i(TAG, "ORANGE"); 
      break; 
     default: 
      bitmapMarker = BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED); 
      Log.i(TAG, "DEFAULT"); 
      break; 
     }    
     mMarkers.add(mMap.addMarker(new MarkerOptions().position(ll).title(location.get(i).getName()) 
       .snippet(getStateString(location.get(i).getState())).icon(bitmapMarker))); 

     Log.i(TAG,"Car number "+i+" was added " +mMarkers.get(mMarkers.size()-1).getId()); 
    } 
}