FragmentManagerに問題があります。私は断片的にGoogleマップを取得しようとしています。これは私の断片です。私はcom.google.android.gmsを使用して、指定された位置のためのマップを作りたい:遊ぶ-サービス:9.2.1フラグメントマネージャー2番目の変数
>
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
import com.spoturdeal.spoturdeal.R;
public class MapShopsFragment extends FragmentActivity implements OnMapReadyCallback {
private GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mapdeals);
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
// Add a marker in Somewhere, and move the camera.
LatLng somewhere = new LatLng(51, 6);
mMap.addMarker(new MarkerOptions().position(somewhere).title("Marker in somewhere"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(somewhere));
}
}
MainActivity以下の輸入を持って
>
私はandroid.support.v4.app.FragmentActivity 問題を持っているコードを使用していますことを私がチェックしているimport android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.os.Process;
import android.support.design.widget.NavigationView;
import android.support.design.widget.Snackbar;
import android.support.v4.app.ActivityCompat;
import android.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.content.ContextCompat;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;
import android.Manifest;
import com.spoturdeal.spoturdeal.R;
import com.spoturdeal.spoturdeal.fragments.MapShopsFragment;
はこの部分
です(77、25)エラー:互換性のない型:ビルドする際に私ができる>
private void displayInitialFragment() {
MapShopsFragment mapShopsFragment = new MapShopsFragment();
FragmentManager fragmentmanager = getSupportFragmentManager();
fragmentmanager.beginTransaction()
.setCustomAnimations(R.anim.anim_slide_in_from_left, R.anim.anim_slide_out_from_left)
.replace(R.id.relativelayout_for_fragment,
mapShopsFragment, /** here is the Problem
mapShopsfragment.getTag()
).commit();
}
エラーメッセージがエラーであるMapShopsFragmentは私が働いているいくつかのより多くの断片を持って
をフラグメントに変換することはできません彼らには問題があります。それらはListFragmentsとして拡張されています。
マテリアルデザインメニューを設定する必要があるため、別のアクティビティでマップを作成したくありません。私は以下のようなメッセージを取得アンドロイドスタジオのステータスラインで
'replace(int, android.support.v4.app.Fragment)' in 'android.support.v4.app.FragmentTransaction' cannot be applied to '(int, com.spoturdeal.spoturdeal.fragments.MapShopsFragment)' but do not understand what is meant by it.
私は地図をプレイサービスでの作業を取得するために@benの助けを借りて作業断片を取得することができた:9.2.1少し難しかったです。以下は完全に機能するソリューションです。 >
public class MapShopsFragment extends Fragment implements OnMapReadyCallback {
private MapView mapView;
private GoogleMap googleMap;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.mapdeals, container, false);
}
public void onViewCreated(View v, Bundle savedInstanceState) {
mapView = (MapView) v.findViewById(R.id.map);
mapView.onCreate(savedInstanceState);
mapView.onResume();
mapView.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap map) {
googleMap = map;
......
}
}
鉱山MainActivityはインポートを必要とします> com.spoturdeal.spoturdeal.fragments.MapShopsFragment;私がimport android.support.v4.app.Fragmentを追加すると、それは灰色になります – Charley57
はい、ごめんなさい、混乱しました。更新された回答をご覧ください。 – Ben
こんにちはベン、これまでの助けてくれてありがとう。 I Fragmentはうまくいくようです。しかし今、私はマップビューを適切に得ることができます。このエラーが発生した>原因:java.lang.ClassCastException:android.widget.FrameLayoutはcom.google.android.gms.mapsにキャストできません。MapView – Charley57