2012-07-04 25 views
15

मैं अलग-अलग आइटम को चुनने के लिए एक्शन बार में स्पिनर कैसे बना सकता हूं (एक्शन बार टॉप में दिखाया गया है) तो ड्रॉप डाउन सूची में से एक? उदाहरण क्रिया बार में स्पिनर के साथ गूगल मेल है:एंड्रॉइड एक्शनबार स्पिनर चयनित आइटम, उपशीर्षक और ड्रॉपडाउन सूची

action_bar_pattern_spinner

  • वे इस कार्यक्षमता कैसे प्राप्त किया था?
  • क्या मैं ड्रॉप डाउन सूची में उसी आइटम को प्रभावित किए बिना एक्शन बार में चयनित आइटम बदल सकता हूं?
  • उन्होंने दो पंक्तियों और विभिन्न फ़ॉन्ट्स के लिए एक्शन बार में चयनित आइटम को कैसे बदला लेकिन ड्रॉपडाउन सूची में आइटम को प्रभावित नहीं किया?
  • क्या आईसीएस और एक्शन बार शेरलॉक में एक्शन बार स्पिनर के डिफ़ॉल्ट कार्यान्वयन के साथ इसे हासिल करना संभव है या क्या हमें कस्टम व्यू के साथ प्रयास करना चाहिए?

कोई भी स्रोत कोड, ट्यूटोरियल या दस्तावेज़ वास्तव में सहायक होगा। मेरे पास पहले से ही एक्शन बार में एडाप्टर के साथ स्पिनर है और मेरे पास ड्रॉपडाउन मेनू में सूची है, लेकिन मैं ड्रॉपडाउन सूची में आइटम को प्रभावित किए बिना किसी भी तरह से आइटम में संशोधित नहीं कर सकता (क्योंकि वे एक ही चीज़ हैं)।

उत्तर

6

यह थोड़ा बहुत देर हो चुकी है, लेकिन टिप्पणी की कोड के साथ ट्यूटोरियल हो सकता है Android डेवलपर वेबसाइट पर पाया जा सकता है: http://developer.android.com/guide/topics/ui/actionbar.html#Dropdown

मूल बातें आप इसे एक सूची होने के लिए सेट करने के लिए है कि गतिविधि के दौरान OnCreate है :

 getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); 

और उसके बाद एक स्पिनर एडाप्टर और कुछ कॉलबैक बनाएं जैसे आप सामान्य स्पिनर के साथ करेंगे।

आशा है कि यह

20

में मदद करता है स्पिनर सूची में से कार्रवाई बार स्पिनर में एक अलग दृष्टिकोण के लिए, यदि आप एक BaseAdapter या एक ArrayAdapter का उपयोग करें और ओवरराइड कर सकते हैं कुछ तरीके:

@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
    // Return a view which appears in the action bar. 

    return yourCustomView..; 
    } 

    @Override 
    public View getDropDownView(int position, View convertView, ViewGroup parent) { 
    // Return a view which appears in the spinner list. 

    // Ignoring convertView to make things simpler, considering 
    // we have different types of views. If the list is long, think twice! 
    return super.getView(position, null, parent); 
    } 
+0

हाँ यह है उचित समाधान – VladacusB

+4

हाँ, इस तरह उन्होंने यह किया: [स्रोत] (https://android.googlesource.com/platform/packages/apps/Calendar.git/+/d31b90f25456652b81be7c8349d7e10db1fa9338/src/com/android/calendar/CalendarViewAdapter.java) – Jay

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