5

के साथ ActionBarSherlock का उपयोग करें मैं Google मानचित्र API V2 के साथ ActionBarSherlock का उपयोग करना चाहता हूं। मैंने here में एक समाधान पढ़ा है। लेकिन जब मेरी मुख्य ActionBarSherlock वर्ग का विस्तार है, यह इतना lib menthod के लिए याद आ रही (जैसे: findViewById, getSupportActionBar ..)Google मानचित्र API V2

यह मेरा ActionBarSherlock

public class FeatureToggles extends SherlockMapFragment { 
    private static final Random RANDOM = new Random(); 
    private int       items  = 0; 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu){ 
     for(int i = 0; i < items; i++) { 
      menu.add("Text").setIcon(R.drawable.ic_title_share_default).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT); 
     } 
     return super.onCreateOptionsMenu(menu); 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState){ 
     setTheme(R.style.Theme_Sherlock); // Used for theme switching in samples 
     requestWindowFeature(Window.FEATURE_PROGRESS); 
     requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.feature_toggles); 
     setSupportProgressBarIndeterminateVisibility(false); 
     setSupportProgressBarVisibility(false); 
     getSupportActionBar().setCustomView(R.layout.custom_view); 
     getSupportActionBar().setDisplayShowCustomEnabled(false); 
     Context context = getSupportActionBar().getThemedContext(); 
     ArrayAdapter<CharSequence> listAdapter = ArrayAdapter.createFromResource(context, R.array.locations, R.layout.sherlock_spinner_item); 
     listAdapter.setDropDownViewResource(R.layout.sherlock_spinner_dropdown_item); 
     getSupportActionBar().setListNavigationCallbacks(listAdapter, null); 



//  if (savedInstanceState == null) { 
//   // Do first time initialization -- add initial fragment. 
//   Fragment newFragment = CountingFragment.newInstance(mStackLevel); 
//   FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
//   ft.add(R.id.simple_fragment, newFragment).commit(); 
//  } else { 
//   mStackLevel = savedInstanceState.getInt("level"); 
//  } 
//  
//  findViewById(R.id.new_fragment).setOnClickListener(new View.OnClickListener() { 
//   public void onClick(View v){ 
//    addFragmentToStack(); 
//   } 
//  });  
     findViewById(R.id.btnMap).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v){ 
       Intent i = new Intent(getApplicationContext(), GoogleActivityV2.class); 
       startActivity(i); 
      } 
     });  
     findViewById(R.id.display_progress_show).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v){ 
       setSupportProgressBarVisibility(true); 
       setSupportProgressBarIndeterminateVisibility(false); 
       setSupportProgress(RANDOM.nextInt(8000) + 10); 
      } 
     }); 
     findViewById(R.id.display_progress_hide).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v){ 
       setSupportProgressBarVisibility(false); 
      } 
     }); 
     findViewById(R.id.display_iprogress_show).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v){ 
       // Hack to hide the regular progress bar 
       setSupportProgress(Window.PROGRESS_END); 
       setSupportProgressBarIndeterminateVisibility(true); 
      } 
     }); 
     findViewById(R.id.display_iprogress_hide).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v){ 
       setSupportProgressBarIndeterminateVisibility(false); 
      } 
     }); 
     findViewById(R.id.display_items_clear).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v){ 
       items = 0; 
       invalidateOptionsMenu(); 
      } 
     }); 
     findViewById(R.id.display_items_add).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v){ 
       items += 1; 
       invalidateOptionsMenu(); 
      } 
     }); 
     findViewById(R.id.display_subtitle_show).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view){ 
       getSupportActionBar().setSubtitle("The quick brown fox jumps over the lazy dog."); 
      } 
     }); 
     findViewById(R.id.display_subtitle_hide).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view){ 
       getSupportActionBar().setSubtitle(null); 
      } 
     }); 
     findViewById(R.id.display_title_show).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view){ 
       getSupportActionBar().setDisplayShowTitleEnabled(true); 
      } 
     }); 
     findViewById(R.id.display_title_hide).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view){ 
       getSupportActionBar().setDisplayShowTitleEnabled(false); 
      } 
     }); 
     findViewById(R.id.display_custom_show).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view){ 
       getSupportActionBar().setDisplayShowCustomEnabled(true); 
      } 
     }); 
     findViewById(R.id.display_custom_hide).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view){ 
       getSupportActionBar().setDisplayShowCustomEnabled(false); 
      } 
     }); 
     findViewById(R.id.navigation_standard).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view){ 
       getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); 
      } 
     }); 
     findViewById(R.id.navigation_list).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view){ 
       getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); 
      } 
     }); 
     findViewById(R.id.navigation_tabs).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view){ 
       getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
      } 
     }); 
     findViewById(R.id.display_home_as_up_show).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view){ 
       getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
      } 
     }); 
     findViewById(R.id.display_home_as_up_hide).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view){ 
       getSupportActionBar().setDisplayHomeAsUpEnabled(false); 
      } 
     }); 
     findViewById(R.id.display_logo_show).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view){ 
       getSupportActionBar().setDisplayUseLogoEnabled(true); 
      } 
     }); 
     findViewById(R.id.display_logo_hide).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view){ 
       getSupportActionBar().setDisplayUseLogoEnabled(false); 
      } 
     }); 
     findViewById(R.id.display_home_show).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view){ 
       getSupportActionBar().setDisplayShowHomeEnabled(true); 
      } 
     }); 
     findViewById(R.id.display_home_hide).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view){ 
       getSupportActionBar().setDisplayShowHomeEnabled(false); 
      } 
     }); 
     findViewById(R.id.display_actionbar_show).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view){ 
       getSupportActionBar().show(); 
      } 
     }); 
     findViewById(R.id.display_actionbar_hide).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view){ 
       getSupportActionBar().hide(); 
      } 
     }); 


    } 

    public void onTabSelected(Tab tab, FragmentTransaction transaction){ 
    } 

    public void onTabUnselected(Tab tab, FragmentTransaction transaction){ 
    } 

    public void onTabReselected(Tab tab, FragmentTransaction transaction){ 
    } 
} 
+1

शेरलॉक फ्रैगमेंट एक्टिविटी बढ़ाने और प्रोग्रामेटिक रूप से अपना नक्शा बनाने के लिए एक बेहतर मार्ग हो सकता है। प्रोग्रामेटिक डेमो एक्टिविटी नमूना देखें जो Google play सेवाएं मैप उदाहरणों के साथ आता है। इस तरह मैं actionbarsherlock के साथ नक्शे api v2 का उपयोग करता हूं। –

+0

@sliver_man उत्तर के लिए धन्यवाद, मैं इसे आजमाउंगा :) – Dolphin

+0

@ डॉल्फ़िन क्या Silver_man का दृष्टिकोण आपके लिए काम करता था? –

उत्तर

3

है यहाँ एक पूर्ण स्क्रीन नक्शे के साथ मेरी दृष्टिकोण (है ध्यान दें कि जब आप स्वाइप कि आप में से एक टैब के भीतर एक टुकड़ा के भीतर GoogleMap एपीआई V2 का उपयोग कर एबीएस कुछ awefull काला मार्जिन जोड़ देगा, और यह एक एपीआई मुद्दा तो है ...):

नक्शा टुकड़ा के लिए एक लेआउट:

<?xml version="1.0" encoding="utf-8"?> 
<fragment xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/map" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    class="com.package.TransparentSupportMapFragment" /> 

नक्शे के लिए एक वर्ग (कि एपीआई कीड़े को सही करने जैसे कुछ चीज़ें करने उपयोगी हो सकता है ..)

public class TransparentSupportMapFragment extends SupportMapFragment { 
    public TransparentSupportMapFragment() { 

     super(); 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup view, Bundle savedInstance) { 

     View layout = super.onCreateView(inflater, view, savedInstance); 
     FrameLayout frameLayout = new FrameLayout(getActivity()); 
     frameLayout.setBackgroundColor(getResources().getColor(android.R.color.transparent)); 
     ((ViewGroup) layout).addView(frameLayout, new ViewGroup.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); 
     return layout; 
    } 
} 

एक FragmentActivity (या SherlockFragmentActivity)

public class ActivityGoogleMap extends SherlockFragmentActivity{ 

    GoogleMap _googleMap; 

    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_maps); 

     // abs 
     ActionBar bar = getSupportActionBar(); 
     bar.setTitle(R.string.tle_abs); 
     bar.setDisplayHomeAsUpEnabled(true); 

     // map 
     _googleMap = ((TransparentSupportMapFragment) getSupportFragmentManager().findFragmentById((R.id.map))).getMap(); 
} 

एनीमेशन के बिना एक साधारण संक्रमण:

Intent intent = new Intent(this, ActivityGoogleMap.class); 
startActivity(intent); 
अब प्रकट काम के लिए

:

OpenGLES2:

<uses-feature 
     android:glEsVersion="0x00020000" 
     android:required="true" /> 

कुछ अनुमतियाँ:

 <permission 
     android:name="com.egdigital.appetablissement.permission.MAPS_RECEIVE" 
     android:protectionLevel="signature" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<!-- GPS LOCATION --> 
    <uses-permission android:name="android.permission.ACCESS_GPS" /> 
    <uses-permission android:name="android.permission.ACCESS_ASSISTED_GPS" /> 
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 

आवेदन में अपनी API कुंजी:

<meta-data 
      android:name="com.google.android.maps.v2.API_KEY" 
      android:value="HERE_THE_KEY" /> 

आपका MapActivity:

<activity 
    android:name=".ActivityGoogleMap" 
    android:configChanges="orientation" 
    android:label="@string/app_name" > 
</activity> 

यह आशा है कि अच्छी किस्मत

संबंधित मुद्दे