0

こんにちは、私のアプリケーションで 1 つのフラグメントを表示しています。そのフラグメント内にマップを表示しています。だから私のコードは次のようになります:

   <RelativeLayout 
       android:layout_height="wrap_content"
       android:layout_width="match_parent"
       android:id="@+id/innerrelativelay"
       android:padding="10dp">

       <TextView
       android:id="@+id/storename" 
       android:layout_height="wrap_content"
       android:layout_width="wrap_content"
       android:text="Store Name:"
       android:textSize="15sp"
       />
       <TextView
       android:id="@+id/storeaddress" 
       android:layout_height="wrap_content"
       android:layout_width="wrap_content"
       android:layout_below="@+id/storename"
       android:text="Store Address:"
       android:textSize="15sp"
       />
   </RelativeLayout>

<com.google.android.gms.maps.MapView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/mapView" 
    android:layout_below="@+id/innerrelativelay"
   />

</RelativeLayout>

フラグメントは次のようになります。

public class MyAccount extends SherlockFragment {

    MapView map;
    GoogleMap mMap;
    TextView storeName,storeAddress;
    SharedPreferences storeInfo,authenticationInfo;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
            Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.maplayout, container, false);
        map = (MapView) v.findViewById(R.id.mapView);
        map.onCreate(savedInstanceState);
        mMap = map.getMap();
        map.onCreate(savedInstanceState);
        mMap.getUiSettings().setMyLocationButtonEnabled(false);
        mMap.setMyLocationEnabled(true);

        try {
            MapsInitializer.initialize(this.getActivity());
        } catch (GooglePlayServicesNotAvailableException e) {
            e.printStackTrace();
        }

        // Updates the location and zoom of the MapView
        CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(new LatLng(43.1, -87.9), 10);
        mMap.animateCamera(cameraUpdate);
        mMap.setMyLocationEnabled(true);

        storeName = (TextView)v.findViewById(R.id.storename);
        storeAddress = (TextView)v.findViewById(R.id.storeaddress);

        storeInfo = getActivity().getSharedPreferences(CommonSharedPref.QCMERCHANT_STOREID, 0);
        authenticationInfo = getActivity().getSharedPreferences(CommonSharedPref.QCMERCHANT_AUTHENTICATION_INFO, 0);

        storeName.setText(storeName.getText().toString()+storeInfo.getString(CommonSharedPref.QCMERCHANT_STORENAME, ""));
        storeAddress.setText(storeAddress.getText().toString()+storeInfo.getString(CommonSharedPref.QCMERCHANT_ADDRESS1, "")
                +"\n"+storeInfo.getString(CommonSharedPref.QCMERCHANT_ADDRESS1, ""));


        return v;
    }
}

マップは正しく表示されますが、マーカーの作成、現在の場所の表示、または特定の場所でのカメラの移動が正しく機能しません。これを行う方法。助けが必要。ありがとうございました。

4

1 に答える 1

0

更新 フラグメントのレイアウトを次のように変更してみてください

<fragment
    android:id="@+id/mapView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    class="com.google.android.gms.maps.MapFragment" />

また、まだマーカーを初期化していないようです。そのため、マーカーが表示されません..それを行う方法のポインターが必要な場合..非常に優れたチュートリアルページがあります...

http://www.vogella.com/articles/AndroidGoogleMaps/article.html

ここからhttps://developers.google.com/maps/documentation/android/v1/hello-mapviewを見ることができます

2012 年 12 月 3 日に正式に廃止された Google Maps Android API のバージョン 1

したがって、MapView はもう使用しないでください。代わりに MapFragment を使用することをお勧めします。ここで優れたドキュメントを参照してください: https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/MapFragment

于 2013-09-20T11:19:21.290 に答える