2016-05-01 7 views
0

このコードを取得してLatLngに2つのパラメータを渡そうとしましたが(ハードコードされていれば問題ありません)、保護レベルlocation = new LatLng ...保護レベルのためにC#のオブジェクトに変数を渡すことができません

カプセル化にはどのような問題がありますか?

namespace SomeApp 
{ 
    [Activity (Label = "App")]   
    public class MapActivity : Activity 
    { 
     protected override void OnCreate (Bundle savedInstanceState) 
     { 
      base.OnCreate (savedInstanceState); 
      SetContentView(Resource.Layout.MapLayout); 

      MapLocationSetup(); 

     } 

     public void MapLocationSetup() { 

      string currentLocationLatitude = Intent.GetStringExtra ("currentLocationLatitude"); 
      string currentLocationLongitude = Intent.GetStringExtra ("currentLocationLongitude"); 

      var location = new LatLng(currentLocationLatitude, currentLocationLongitude); 
      CameraPosition.Builder builder = CameraPosition.InvokeBuilder(); 
      builder.Target(location); 
      builder.Zoom(18); 
      builder.Bearing(155); 
      builder.Tilt(85); 
      CameraPosition cameraPosition = builder.Build(); 
      CameraUpdate cameraUpdate = CameraUpdateFactory.NewCameraPosition(cameraPosition); 

      MapFragment mapFrag = (MapFragment) FragmentManager.FindFragmentById(Resource.Id.mapLayout); 
      GoogleMap map = mapFrag.Map; 
      if (map != null) { 
       map.MoveCamera(cameraUpdate); 
       //map.MapType = GoogleMap.MapTypeSatellite; 
      } 
     } 
    } 
} 
+3

「LatLng」のコンストラクタはどのように見えますか?推測すると、2つの文字列ではなく、2つの数字を提供するはずです。 –

+1

アクセスできないものは何ですか?メッセージを表示できますか? – h8red

答えて

1

AndroidのLatLng construtorはdoubleを想定しており、文字列を渡しています。これは、保護レベルのエラーではなく、型キャストエラーを与えるはずですが、それは基本的な問題のようです。

string currentLocationLatitude = Intent.GetStringExtra ("currentLocationLatitude"); 
string currentLocationLongitude = Intent.GetStringExtra ("currentLocationLongitude"); 

double lat = Double.Parse(currentLocationLatitude); 
double lng = Double.Parse(currentLocationLongitude); 

var location = new LatLng(lat, lng); 
+0

実際にコードを更新することで問題が解決しました。私はXamarin Studioを使用しています。多分、間違ったエラータイプを受け取った理由です。 –

関連する問題