2012-07-07 16 views
17

पर ड्रॉप डाउन मेनू मैं एक्शन बार के साथ एंड्रॉइड एप्लिकेशन मेनू पर काम कर रहा हूं, मैं ड्रॉपडाउन मेनू को एक्शन बार में Google मानचित्र एप्लिकेशन में मौजूद एक जैसा रखना चाहता हूं। Google Maps ActionBarएक्शन बार

क्या कोई मेरी मदद कर सकता है? इसे कैसे प्राप्त करें कृपया कुछ आसान ट्यूटोरियल को इंगित करें जिसका मैं अनुसरण कर सकता हूं।

+0

अपने प्रश्न की जाँच करें या इसे अलग तरीके से व्यक्त यदि आवश्यक हो तो कृपया है। – JJD

+0

कृपया एंड्रॉइड दस्तावेज की जांच करें: http://developer.android.com/guide/topics/ui/actionbar.html#Dropdown –

उत्तर

11

अपनी गतिविधि को यह जोड़े OnCreate() विधि:

// Adapter 
SpinnerAdapter adapter = 
     ArrayAdapter.createFromResource(this, R.array.actions, 
     android.R.layout.simple_spinner_dropdown_item); 

// Callback 
OnNavigationListener callback = new OnNavigationListener() { 

    String[] items = getResources().getStringArray(R.array.actions); // List items from res 

    @Override 
    public boolean onNavigationItemSelected(int position, long id) { 

     // Do stuff when navigation item is selected 

     Log.d("NavigationItemSelected", items[position]); // Debug 

     return true; 

    } 

}; 

// Action Bar 
ActionBar actions = getActionBar(); 
actions.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); 
actions.setDisplayShowTitleEnabled(false); 
actions.setListNavigationCallbacks(adapter, callback); 

यह उदाहरण सूची आइटम के लिए एक सरणी संसाधन की आवश्यकता है:

res/values ​​/ arrays.xml

<string-array name="actions"> 
    <item>Item 1</item> 
    <item>Item 2</item> 
    <item>Item 3</item> 
</string-array> 

वैकल्पिक रूप से आप अधिक उन्नत या गतिशील सूची आइटम प्रदर्शित करने के लिए स्पिनरएडाप्टर से अपना स्वयं का एडाप्टर और लेआउट बढ़ा सकते हैं।

क्रिएट कोड पर भी गतिविधि करने के लिए यहां तक ​​कि neater आप OnNavigationListener को लागू करने के लिए अपनी गतिविधि भी बदल सकते हैं और कॉलबैक कोड के साथ चयन किए गए ओवरविइड को ओवरराइड जोड़ सकते हैं। फिर setListNavigationCallbacks() विधि में "कॉलबैक" को "इस" में बदलें।

कृपया ध्यान दें कि आपको एक्शन बार के लिए एपीआई 11+ को लक्षित करने की आवश्यकता होगी, अन्यथा आपको संस्करण जांच या समर्थन लाइब्रेरी जोड़ने की आवश्यकता होगी।

1

जाँच इस लिंक भी यह उपयोगी उदाहरण दिए रूप Example link

GoogleMap map; 

TextView txt; 

String[] mapTypes={"Normal","Hybrid","Satellite","Terrain"}; 

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

    map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)) 
      .getMap(); 

    txt=(TextView)findViewById(R.id.textView1); 

//to set map Type 
    map.setMapType(GoogleMap.MAP_TYPE_NORMAL); 

//To set the marker on map on specific location using lat lag 
    // latitude and longitude 
    double latitude = 18.520430300000000000; 
    double longitude = 73.856743699999920000; 

    // create marker 
    MarkerOptions marker = new MarkerOptions().position(new LatLng(latitude, longitude)).title("My Location"); 

    // change color to the marker icon 
    marker.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_CYAN)); 

    // adding marker 
    map.addMarker(marker); 

    // Create an array adapter to populate dropdownlist 
    ArrayAdapter<String> adapter =new ArrayAdapter<String>(getBaseContext(), android.R.layout.simple_spinner_dropdown_item, mapTypes); 

    /** Enabling dropdown list navigation for the action bar */ 
    getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); 

    /** Defining Navigation listener */ 
    ActionBar.OnNavigationListener navigationListener=new ActionBar.OnNavigationListener() { 

     @Override 
     public boolean onNavigationItemSelected(int itemPosition, long itemId) { 
      Toast.makeText(getBaseContext(), "U Select : "+mapTypes[itemPosition], Toast.LENGTH_SHORT).show(); 
      if (mapTypes[itemPosition].equals("Normal")) { 
       map.setMapType(GoogleMap.MAP_TYPE_NORMAL); 
      } 
      else if (mapTypes[itemPosition].equals("Hybrid")) { 
       map.setMapType(GoogleMap.MAP_TYPE_HYBRID); 
      } 
      else if (mapTypes[itemPosition].equals("Satellite")) { 
       map.setMapType(GoogleMap.MAP_TYPE_SATELLITE); 
      } 
      else if (mapTypes[itemPosition].equals("Terrain")) { 
       map.setMapType(GoogleMap.MAP_TYPE_TERRAIN); 
      } 
      return false; 
     } 
    }; 

    // Setting dropdown items and item navigation listener for the actionbar 
    getActionBar().setListNavigationCallbacks(adapter, navigationListener); 

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