2014-07-14 3 views
1

Android에서 새로 생겼습니다. 슬라이딩 바 형식의 앱을 만들고 있는데 슬라이딩 바의 일부가 하나의 조각입니다. 액티비티를 프래그먼트로 변환 할 수 있지만 이제는 프래그먼트 액티비티가 있고 프래그먼트로 변환하고 싶습니다. Android에서 할 수 있습니까? 도움 주셔서 감사합니다.FragmentActivity를 조각으로 변환하는 방법?

import android.app.Dialog; 
import android.location.Criteria; 
import android.location.Location; 
import android.location.LocationListener; 
import android.location.LocationManager; 
import android.os.Bundle; 
import android.support.v4.app.FragmentActivity; 
import com.google.android.gms.common.ConnectionResult; 
import com.google.android.gms.common.GooglePlayServicesUtil; 
import com.google.android.gms.maps.CameraUpdateFactory; 
import com.google.android.gms.maps.GoogleMap; 
import com.google.android.gms.maps.SupportMapFragment; 
import com.google.android.gms.maps.model.LatLng; 

public class GoogleMapV2 extends FragmentActivity implements LocationListener { 
    GoogleMap googleMap; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.googlemap_layout); 

     // Getting Google Play availability status 
     int status = GooglePlayServicesUtil 
       .isGooglePlayServicesAvailable(getBaseContext()); 

     // Showing status 
     if (status != ConnectionResult.SUCCESS) { // Google Play Services are 
                // not available 

      int requestCode = 10; 
      Dialog dialog = GooglePlayServicesUtil.getErrorDialog(status, this, 
        requestCode); 
      dialog.show(); 

     } else { // Google Play Services are available 

      // Getting reference to the SupportMapFragment of activity_main.xml 
      SupportMapFragment fm = (SupportMapFragment) getSupportFragmentManager() 
        .findFragmentById(R.id.mapGoogle); 

      // Getting GoogleMap object from the fragment 
      googleMap = fm.getMap(); 

      // Enabling MyLocation Layer of Google Map 
      googleMap.setMyLocationEnabled(true); 

      // Getting LocationManager object from System Service 
      // LOCATION_SERVICE 
      LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); 
      // Creating a criteria object to retrieve provider 
      Criteria criteria = new Criteria(); 

      // Getting the name of the best provider 
      String provider = locationManager.getBestProvider(criteria, true); 

      // Getting Current Location 
      Location location = locationManager.getLastKnownLocation(provider); 

      if (location != null) { 
       onLocationChanged(location); 
      } 
      locationManager.requestLocationUpdates(provider, 0, 0, this); 
     } 
    } 

    @Override 
    public void onLocationChanged(Location location) { 

     // TextView tvLocation = (TextView) fa.findViewById(R.id.tv_location); 

     // Getting latitude of the current location 
     double latitude = location.getLatitude(); 

     // Getting longitude of the current location 
     double longitude = location.getLongitude(); 

     // Creating a LatLng object for the current location 
     LatLng latLng = new LatLng(latitude, longitude); 

     // Showing the current location in Google Map 
     googleMap.moveCamera(CameraUpdateFactory.newLatLng(latLng)); 

     // Zoom in the Google Map 
     googleMap.animateCamera(CameraUpdateFactory.zoomTo(15)); 

     // Setting latitude and longitude in the TextView tv_location 
     // tvLocation.setText("Latitude:" + latitude + ", Longitude:" + 
     // longitude); 
    } 

    @Override 
    public void onProviderDisabled(String provider) { 
     // TODO Auto-generated method stub 
    } 

    @Override 
    public void onProviderEnabled(String provider) { 
     // TODO Auto-generated method stub 
    } 

    @Override 
    public void onStatusChanged(String provider, int status, Bundle extras) { 
     // TODO Auto-generated method stub 
    } 

} 


<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:map="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/LinearLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/tv_location" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="MyLocation" /> 

    <fragment 
     android:id="@+id/mapGoogle" 
     android:name="com.google.android.gms.maps.SupportMapFragment" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     /> 

</FrameLayout> 
+0

코드를 게시하시기 바랍니다. – Synchro

+0

조각 활동을 조각으로 변환하는 것과 같이 조각 활동을 조각으로 변환하는 데 열심히 노력했지만 InflateException이 발생했습니다. Android에서 Fragment Activity를 Fragment로 변환 할 수있는 방법이 있는지 모르겠습니다. – Linh

답변

1

조각은 응용 프로그램의 사용자 인터페이스 또는 활동에 배치 할 수있는 동작의 일부이므로 사용할 수 없습니다. 그것은 활동에 속합니다. 그래서 액티비티는 프래그먼트로 변환 될 수 없습니다. 아래

더 많은 정보보기 링크 :

+1

여기서 Activity를 Fragment로 변환하는 방법을 찾았습니다. http://spacetech.dk/android-convert-activity-to-fragment.html. 잘못 됐나? – Linh

+0

당신은 웹에서 말했듯이, 활동을 조각으로 변환하는 것이 가능한지 말해 줄 수 있습니다. – Wesley

+0

나는이 웹을 따라 활동을 조각으로 변환 할 수 있습니다. 아무런 오류가 발생하지 않았습니다. 그러나, 내 문제는 FragmentActivity를 Fragment로 변환합니다. – Linh

관련 문제