0

アプリケーションで getMap() を呼び出そうとしましたが、常に次の行でエラーが発生します

map = ((SupportMapFragment) getActivity().getSupportFragmentManager().findFragmentById(R.id.map)).getMap();

GoogleMap を表示するためのアクティビティはフラグメントとして実装されます。何が間違っている可能性がありますか?私の活動全体を以下に示します。

 package sg.SanThit.TrackMe;

 import android.annotation.SuppressLint;
 import android.database.Cursor;
 import android.os.Bundle;
 import android.support.v4.app.Fragment;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuInflater;
 import android.view.MenuItem;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.Toast;

 import com.google.android.gms.maps.GoogleMap;
 import com.google.android.gms.maps.SupportMapFragment;

 public class MyDetailsFragment extends Fragment {
 private TrackerInfo trackerDetailInfo;
 GoogleMap map;



public MyDetailsFragment() {    
}

@SuppressLint("NewApi")
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getActivity().getActionBar().setDisplayHomeAsUpEnabled(true);
        map = ((SupportMapFragment)      
        getActivity().getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
        if (map == null) {
            Toast.makeText(getActivity(), "Google Maps not available", 
    Toast.LENGTH_LONG).show();
        }
}}
4

1 に答える 1

0

FragmentActivityの代わりに使用しpublic class MyDetailsFragment extends Fragmentます。

以下は、マップをロードするサンプル コードです。

  public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_map);

   map = ((SupportMapFragment)      
  getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
     }

これR.layout.activity_mapは、マップのフラグメントを含む XML ファイルです。

于 2013-03-29T08:08:42.363 に答える