मैं MapView
को ActionBar
Tab
में डालने का प्रयास कर रहा हूं, लेकिन मैं समस्या को हल करने में भी सक्षम नहीं था।FragmentMap + ActionBar Tab
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.action_bar_tabs);
FragmentManager fm = getSupportFragmentManager();
fm.beginTransaction().add(android.R.id.content, GigLoader.GigLoaderListFragment.newInstance()).commit();
getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.Tab tab1 = getSupportActionBar().newTab().setText("Geo").setTabListener(this);
ActionBar.Tab tab2 = getSupportActionBar().newTab().setText("Lista").setTabListener(this);
getSupportActionBar().addTab(tab1);
getSupportActionBar().addTab(tab2);
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
if (tab.getPosition() == 0) {
fm.beginTransaction().add(android.R.id.content, GigLoader.GigLoaderListFragment.newInstance()).commit();
}
else {
fm.beginTransaction().add(android.R.id.content, GeoGigLoader.GeoGigMapFragment.newInstance()).commit();
}
}
और यहाँ GeoGigLoader
का कोड:
यहाँ मुख्य गतिविधि है
public class GeoGigLoader extends FragmentMapActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
public static final class GeoGigMapFragment extends Fragment {
static GeoGigMapFragment newInstance() {
GeoGigMapFragment map = new GeoGigMapFragment();
return map;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = getActivity().getLayoutInflater().inflate(R.layout.map_gigs, container, false);
MapView mapView = (MapView)view.findViewById(R.id.map_view);
mapView.setBuiltInZoomControls(true);
return view;
}
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
}
FragmentMapActivity
actionbarsherlock.com से एक पुस्तकालय है, और यह एक एक MapActivity
तक फैली हुई है, इसलिए यह काम करना चाहिए।
त्रुटि मैं मिलता है, अगले एक है:
FATAL EXCEPTION: main E/AndroidRuntime(954): android.view.InflateException: Binary XML file line #2: Error inflating class com.google.android.maps.MapView E/AndroidRuntime(954): at android.view.LayoutInflater.createView(LayoutInflater.java:513) E/AndroidRuntime(954): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:565)
किसी को पता है क्या हो रहा है?
लेकिन मैं एक्सचेंजर मैप व्यू विशेषता कैसे घोषित कर सकता हूं ?? मैंने कभी भी एक्सचेंज क्लास – cesards
एक्सचेंजर का उपयोग नहीं किया है, केवल एक वर्ग है जिसे मैंने स्वयं बनाया है, यह एक वर्ग है जिसमें केवल 1 स्थैतिक क्षेत्र mMapView है। – Warpzit
बिल्कुल सही। हाँ मैंने वही किया। एक सिंगलटन एक :-) बहुत बहुत धन्यवाद! – cesards