दिलचस्प पोस्ट
सी में सरणियों को घोषित करना और आरंभ करना एसक्यूएल कॉमांड के लिए पैरामीटर पास करने का सबसे अच्छा तरीका क्या है? क्या मैं कुछ उदाहरणों में सिर्फ प्रतिरूपण को बंद कर सकता हूं कैसे प्रोग्रामिंग के आईपी पता को पाने के लिए सूत्रों के बीच क्या संसाधन साझा किए जाते हैं? जावा का उपयोग करके कम पास फ़िल्टर कैसे कार्यान्वित करें I कौन सा node.js पर समवर्ती कार्यों के लिए बेहतर होगा? रेशे? वेब कार्यकर्ता? या थ्रेड्स? प्रत्येक सरणी के txt फ़ाइल को नए सरणी तत्व में पढ़ें हैशमैप में प्रविष्टि ऑर्डर कैसे सुरक्षित रखना है? एक कच्चा प्रकार क्या है और हम इसका उपयोग क्यों नहीं करना चाहिए? थ्रॉफ्ट बनाम प्रोटोकॉल बफर के सबसे बड़े अंतर? दृश्य स्टूडियो परियोजनाओं और समाधानों के लिए बीच में पारदर्शी अंतराल के साथ एक कंटेनर के लिए सीमा को कैसे जोड़ा जाए JTree: व्यक्तिगत समूहों के लिए कस्टम खुला / बंद चिन्ह सेट करें Iframe और पैरेंट के बीच jquery चर पास करें

ViewPager का उपयोग करने वाले एक टुकड़े पर Google मानचित्र V2 को कैसे रखा जाए

मैं Play Store में एक टैब लेआउट की कोशिश कर रहा हूं I मुझे एंड्रॉइडहाइव से एक टुकड़े और व्यू पेगर का प्रयोग करके टैब लेआउट प्रदर्शित करना था । हालांकि, मैं उस पर Google मानचित्र v2 को लागू नहीं कर सकता। मैंने पहले ही घंटों के लिए इंटरनेट खोज की थी लेकिन मुझे यह कैसे करना है यह ट्यूटोरियल नहीं मिला। क्या कोई मुझे बता सकता है कि कैसे धन्यवाद!

Solutions Collecting From Web of "ViewPager का उपयोग करने वाले एक टुकड़े पर Google मानचित्र V2 को कैसे रखा जाए"

इस कोड का उपयोग करके हम किसी भी ViewPager या टुकड़ा या गतिविधि के अंदर, कहीं भी मानचित्रदृश्य देख सकते हैं।

नक्शे के लिए Google के नवीनतम अपडेट में, केवल मानचित्रदृश्य टुकड़ों के लिए समर्थित है। मानचित्रफ्रैग्मेंट और सहायतामैपफ्रैगमेंट काम नहीं कर रहा है मैं गलत हो सकता है लेकिन यह है कि मैंने MapFragment और SupportMapFragment को लागू करने के प्रयास के बाद देखा था।

नक्शा दिखाने के लिए लेआउट की स्थापना। location_fragment.xml :

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <com.google.android.gms.maps.MapView android:id="@+id/mapView" android:layout_width="match_parent" android:layout_height="match_parent" /> </RelativeLayout> 

अब हम नक्शा दिखाने के लिए जावा वर्ग को कोडित करते हैं। नक्शादृश्यप्रदर्शन :

 public class MapViewFragment extends Fragment { MapView mMapView; private GoogleMap googleMap; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.location_fragment, container, false); mMapView = (MapView) rootView.findViewById(R.id.mapView); mMapView.onCreate(savedInstanceState); mMapView.onResume(); // needed to get the map to display immediately try { MapsInitializer.initialize(getActivity().getApplicationContext()); } catch (Exception e) { e.printStackTrace(); } mMapView.getMapAsync(new OnMapReadyCallback() { @Override public void onMapReady(GoogleMap mMap) { googleMap = mMap; // For showing a move to my location button googleMap.setMyLocationEnabled(true); // For dropping a marker at a point on the Map LatLng sydney = new LatLng(-34, 151); googleMap.addMarker(new MarkerOptions().position(sydney).title("Marker Title").snippet("Marker Description")); // For zooming automatically to the location of the marker CameraPosition cameraPosition = new CameraPosition.Builder().target(sydney).zoom(12).build(); googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); } }); return rootView; } @Override public void onResume() { super.onResume(); mMapView.onResume(); } @Override public void onPause() { super.onPause(); mMapView.onPause(); } @Override public void onDestroy() { super.onDestroy(); mMapView.onDestroy(); } @Override public void onLowMemory() { super.onLowMemory(); mMapView.onLowMemory(); } } 

अंत में आपको अपने ऐप को Google क्लाउड कंसोल पर दर्ज करके अपने ऐप के लिए एपीआई कुंजी प्राप्त करने की आवश्यकता है। देशी ऐप के रूप में अपने ऐप को पंजीकृत करें

निम्नलिखित दृष्टिकोण मेरे लिए काम करता है

 import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.MapView; import com.google.android.gms.maps.MapsInitializer; import com.google.android.gms.maps.model.BitmapDescriptorFactory; import com.google.android.gms.maps.model.CameraPosition; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.MarkerOptions; /** * A fragment that launches other parts of the demo application. */ public class MapFragment extends Fragment { MapView mMapView; private GoogleMap googleMap; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // inflat and return the layout View v = inflater.inflate(R.layout.fragment_location_info, container, false); mMapView = (MapView) v.findViewById(R.id.mapView); mMapView.onCreate(savedInstanceState); mMapView.onResume();// needed to get the map to display immediately try { MapsInitializer.initialize(getActivity().getApplicationContext()); } catch (Exception e) { e.printStackTrace(); } googleMap = mMapView.getMap(); // latitude and longitude double latitude = 17.385044; double longitude = 78.486671; // create marker MarkerOptions marker = new MarkerOptions().position( new LatLng(latitude, longitude)).title("Hello Maps"); // Changing marker icon marker.icon(BitmapDescriptorFactory .defaultMarker(BitmapDescriptorFactory.HUE_ROSE)); // adding marker googleMap.addMarker(marker); CameraPosition cameraPosition = new CameraPosition.Builder() .target(new LatLng(17.385044, 78.486671)).zoom(12).build(); googleMap.animateCamera(CameraUpdateFactory .newCameraPosition(cameraPosition)); // Perform any camera updates here return v; } @Override public void onResume() { super.onResume(); mMapView.onResume(); } @Override public void onPause() { super.onPause(); mMapView.onPause(); } @Override public void onDestroy() { super.onDestroy(); mMapView.onDestroy(); } @Override public void onLowMemory() { super.onLowMemory(); mMapView.onLowMemory(); } } 

fragment_location_info.xml

 <?xml version="1.0" encoding="utf-8"?> <com.google.android.gms.maps.MapView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/mapView" android:layout_width="match_parent" android:layout_height="match_parent" /> 

आप इस रेखा का उपयोग कर सकते हैं यदि आप GoogleMap को किसी टुकड़े में उपयोग करना चाहते हैं:

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

 GoogleMap mGoogleMap = ((SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map)).getMap(); 

पदावनत एक के बजाय getMapAsync साथ नवीनतम सामग्री।

1. मैनिफेस्ट की जांच करें

 <meta-data android:name="com.google.android.geo.API_KEY" android:value="xxxxxxxxxxxxxxxxxxxxxxxxx"/> 

आप अपने ऐप को Google Cloud Console पर दर्ज कर अपने ऐप के लिए एपीआई कुंजी प्राप्त कर सकते हैं। देशी ऐप के रूप में अपने ऐप को पंजीकृत करें

2. अपने टुकड़े लेआउट में .xml फ़्रेमलेआउट जोड़ें (टुकड़ा नहीं):

  <FrameLayout android:layout_width="match_parent" android:layout_height="250dp" android:layout_weight="2" android:name="com.google.android.gms.maps.SupportMapFragment" android:id="@+id/mapwhere" /> 

या जो भी ऊंचाई आप चाहते हैं

3.अपने टुकड़े पर क्रिएटिव्यू में

  private SupportMapFragment mSupportMapFragment; mSupportMapFragment = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.mapwhere); if (mSupportMapFragment == null) { FragmentManager fragmentManager = getFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); mSupportMapFragment = SupportMapFragment.newInstance(); fragmentTransaction.replace(R.id.mapwhere, mSupportMapFragment).commit(); } if (mSupportMapFragment != null) { mSupportMapFragment.getMapAsync(new OnMapReadyCallback() { @Override public void onMapReady(GoogleMap googleMap) { if (googleMap != null) { googleMap.getUiSettings().setAllGesturesEnabled(true); -> marker_latlng // MAKE THIS WHATEVER YOU WANT CameraPosition cameraPosition = new CameraPosition.Builder().target(marker_latlng).zoom(15.0f).build(); CameraUpdate cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition); googleMap.moveCamera(cameraUpdate); } } }); 

जब हम एक FragmentTabHost में टैब को बदलते हैं, तो NullPointerException प्राप्त करने के मुद्दे के लिए आपको यह कोड अपने क्लास में जोड़ना होगा जिसमें TabHost मेरा मतलब है कि वह क्लास जहां आप टैब को इनिशियलाइज़ करते हैं यह कोड है:

 /**** Fix for error : Activity has been destroyed, when using Nested tabs * We are actually detaching this tab fragment from the `ChildFragmentManager` * so that when this inner tab is viewed back then the fragment is attached again****/ import java.lang.reflect.Field; @Override public void onDetach() { super.onDetach(); try { Field childFragmentManager = Fragment.class.getDeclaredField("mChildFragmentManager"); childFragmentManager.setAccessible(true); childFragmentManager.set(this, null); } catch (NoSuchFieldException e) { throw new RuntimeException(e); } catch (IllegalAccessException e) { throw new RuntimeException(e); } } 
 public class DemoFragment extends Fragment { MapView mapView; GoogleMap map; LatLng CENTER = null; public LocationManager locationManager; double longitudeDouble; double latitudeDouble; String snippet; String title; Location location; String myAddress; String LocationId; String CityName; String imageURL; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub View view = inflater .inflate(R.layout.fragment_layout, container, false); mapView = (MapView) view.findViewById(R.id.mapView); mapView.onCreate(savedInstanceState); setMapView(); } private void setMapView() { try { MapsInitializer.initialize(getActivity()); switch (GooglePlayServicesUtil .isGooglePlayServicesAvailable(getActivity())) { case ConnectionResult.SUCCESS: // Toast.makeText(getActivity(), "SUCCESS", Toast.LENGTH_SHORT) // .show(); // Gets to GoogleMap from the MapView and does initialization // stuff if (mapView != null) { locationManager = ((LocationManager) getActivity() .getSystemService(Context.LOCATION_SERVICE)); Boolean localBoolean = Boolean.valueOf(locationManager .isProviderEnabled("network")); if (localBoolean.booleanValue()) { CENTER = new LatLng(latitude, longitude); } else { } map = mapView.getMap(); if (map == null) { Log.d("", "Map Fragment Not Found or no Map in it!!"); } map.clear(); try { map.addMarker(new MarkerOptions().position(CENTER) .title(CityName).snippet("")); } catch (Exception e) { e.printStackTrace(); } map.setIndoorEnabled(true); map.setMyLocationEnabled(true); map.moveCamera(CameraUpdateFactory.zoomTo(5)); if (CENTER != null) { map.animateCamera( CameraUpdateFactory.newLatLng(CENTER), 1750, null); } // add circle CircleOptions circle = new CircleOptions(); circle.center(CENTER).fillColor(Color.BLUE).radius(10); map.addCircle(circle); map.setMapType(GoogleMap.MAP_TYPE_NORMAL); } break; case ConnectionResult.SERVICE_MISSING: break; case ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED: break; default: } } catch (Exception e) { } } 

fragment_layout में

 <com.google.android.gms.maps.MapView android:id="@+id/mapView" android:layout_width="match_parent" android:layout_height="160dp" android:layout_marginRight="10dp" /> 

जब आप यार मैप का इस्तेमाल करते हैं:

 getChildFragmentManager().beginTransaction() .replace(R.id.menu_map_container, mapFragment, "f" + shabbatIndex).commit(); 

के बजाय। .add और इसके बजाय getFragmentManager जगह

यहाँ मैं विस्तार में क्या किया:

यहां से आप Google मानचित्र एपीआई कुंजी प्राप्त कर सकते हैं

वैकल्पिक और आसान तरीका

पहले अपने Google खाते में लॉग इन करें और Google लाइब्रेरी पर जाएं और Google मानचित्र Android API का चयन करें

एंड्रॉइड स्टूडियो डिफ़ॉल्ट नक्शा गतिविधि में पाया निर्भरता:

 compile 'com.google.android.gms:play-services:10.0.1' 

नीचे की तरह आवेदन के तहत एंड्रॉयड मुख्यफ़ाइल फ़ाइल में अपनी कुंजी डाल दिया

AndroidMainifest.xml में ये परिवर्तन करें:

  // required permission <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> // google map api key put under/inside <application></application> // android:value="YOUR API KEY" <meta-data android:name="com.google.android.geo.API_KEY" android:value="AIzasdfasdf645asd4f847sad5f45asdf7845" /> 

टुकड़ा कोड:

 public class MainBranchFragment extends Fragment implements OnMapReadyCallback{ private GoogleMap mMap; public MainBranchFragment() { // Required empty public constructor } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View view= inflater.inflate(R.layout.fragment_main_branch, container, false); SupportMapFragment mapFragment = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.main_branch_map); mapFragment.getMapAsync(this); return view; } @Override public void onMapReady(GoogleMap googleMap) { mMap = googleMap; LatLng UCA = new LatLng(-34, 151); mMap.addMarker(new MarkerOptions().position(UCA).title("YOUR TITLE")).showInfoWindow(); mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(UCA,17)); } } 

आप टुकड़े xml में:

 <fragment android:id="@+id/main_branch_map" android:name="com.google.android.gms.maps.SupportMapFragment" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.googlemap.googlemap.MapsActivity" /> 

मेरे पास NullPointerException लिए एक वैकल्पिक हल है, जब DestoryView पर टुकड़े को DestoryView , बस अपना कोड onStop() onDestoryView । यह बढ़िया काम करता है!

 @Override public void onStop() { super.onStop(); if (mMap != null) { MainActivity.fragmentManager.beginTransaction() .remove(MainActivity.fragmentManager.findFragmentById(R.id.location_map)).commit(); mMap = null; } } 

https://developer.android.com/about/versions/android-4.2.html#NestedFragments के अनुसार, अगर आप अभी भी Google नक्शे के बजाय का उपयोग करना चाहते हैं, तो आप getChildFragmentManager () को कॉल करके इसे प्राप्त करने के लिए नेस्टेड टुकड़े उपयोग कर सकते हैं अपने टुकड़े के अंदर देखें:

 SupportMapFragment mapFragment = new SupportMapFragment(); FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); transaction.add(R.id.content, mapFragment).commit(); 

जहां "सामग्री" आपके टुकड़ा (अधिमानतः एक फ़्रेमलेआउट) में रूट लेआउट है मैप टुकड़ा का उपयोग करने का लाभ यह है कि मैप के जीवन चक्र को सिस्टम द्वारा स्वचालित रूप से प्रबंधित किया जाता है।

हालांकि प्रलेखन कहते हैं, "आप किसी लेआउट को एक टुकड़े में नहीं बढ़ा सकते हैं, जब उस लेआउट में एक टुकड़ा शामिल होता है। नेस्टेड टुकड़े केवल एक टुकड़ा गतिशील रूप से जोड़ते समय समर्थित होते हैं।", मैंने किसी तरह सफलतापूर्वक यह किया है और यह ठीक काम किया है। यहां मेरा कोड है:
टुकड़ा पर क्रिएटिव्यू () विधि में:

 View view = inflater.inflate(R.layout.layout_maps, container, false); SupportMapFragment mapFragment = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map); mapFragment.getMapAsync(...); 

लेआउट में:

 <fragment xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/map" android:name="com.google.android.gms.maps.SupportMapFragment" android:layout_width="match_parent" android:layout_height="match_parent" /> 

आशा करता हूँ की ये काम करेगा!

पेजर को देखने के लिए गतिशील मानचित्र मैप जोड़ना:

यदि आप एपीआई स्तर 12 से पहले एक अनुप्रयोग को लक्षित कर रहे हैं, तो SupportedMapFragment का एक उदाहरण बनाएं और इसे अपने दृश्य पेज एडेप्टर में जोड़ें।

 SupportMapFragment supportMapFragment=SupportMapFragment.newInstance(); supportMapFragment.getMapAsync(this); 

API स्तर 12 या उच्चतर समर्थन मानचित्रफ़्रैगमेंट ऑब्जेक्ट्स

 MapFragment mMapFragment=MapFragment.newInstance(); mMapFragment.getMapAsync(this);