खोज…


अपनी गतिविधि में एक स्पिनर जोड़ना

/Res/values/strings.xml में:

<string-array name="spinner_options">
    <item>Option 1</item>
    <item>Option 2</item>
    <item>Option 3</item>
</string-array>

XML में लेआउट:

<Spinner
    android:id="@+id/spinnerName"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:entries="@array/spinner_options" />

गतिविधि में:

Spinner spinnerName = (Spinner) findViewById(R.id.spinnerName);
spinnerName.setOnItemSelectedListener(new OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
         String chosenOption = (String) parent.getItemAtPosition(position);
    }
    @Override
    public void onNothingSelected(AdapterView<?> parent) {}
});

बेसिक स्पिनर उदाहरण

स्पिनर यह ड्रॉपडाउन इनपुट का एक प्रकार है। सबसे पहले लेआउट में

  <Spinner
    android:id="@+id/spinner"     <!-- id to refer this spinner from JAVA-->
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    
</Spinner>

अब स्पिनर में दूसरे मानों को आबाद करें spinner में मूल्यों को आबाद करने के मुख्य रूप से दो तरीके हैं।

  1. XML से ही Res के अंतर्गत मान निर्देशिका में array.xml बनाते हैं। इस array बनाएं
  <string-array name="defaultValue">
    <item>--Select City Area--</item>
    <item>--Select City Area--</item>
    <item>--Select City Area--</item>
</string-array>

अब इस लाइन को sppiner XML में जोड़ें

            android:entries="@array/defaultValue"
  1. आप जावा के माध्यम से मान भी जोड़ सकते हैं

यदि आप activity में उपयोग कर रहे हैं cityArea = (स्पिनर) findViewById (R.id.cityArea); और अगर आप fragment में उपयोग कर रहे हैं

cityArea = (Spinner) findViewById(R.id.cityArea);

अब Strings की एक arrayList बनाएँ

ArrayList<String> area = new ArrayList<>();
//add values in area arrayList
cityArea.setAdapter(new ArrayAdapter<String>(context
                            , android.R.layout.simple_list_item_1, area));

ऐसा लगेगा

यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें

डिवाइस एंड्रॉइड वर्जन के अनुसार यह स्टाइल को रेंडर करेगा

निम्नलिखित कुछ डिफ़ॉल्ट थीम हैं

यदि कोई ऐप स्पष्ट रूप से अपने विषय में किसी विषय का अनुरोध नहीं करता है, तो एंड्रॉइड सिस्टम ऐप की मूल अपेक्षाओं को बनाए रखने के लिए ऐप के लक्ष्य के आधार पर डिफ़ॉल्ट थीम का निर्धारण करेगा:

Android एसडीके संस्करण पूर्व निर्धारित विषय
संस्करण <11 @Android: शैली / थीम
11 और 13 के बीच संस्करण @Android: शैली / Theme.Holo
14 और उच्चतर @Android: शैली / Theme.DeviceDefault

Spinner को आसानी से xml उदा की मदद से अनुकूलित किया जा सकता है

 android:background="@drawable/spinner_background"

 android:layout_margin="16dp"

 android:padding="16dp"

XML में एक कस्टम पृष्ठभूमि बनाएं और इसका उपयोग करें।

आसानी से स्पिनर में चयनित आइटम की स्थिति और अन्य विवरण प्राप्त करें

cityArea.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            areaNo = position;
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    });

स्पिनर में चयनित आइटम का टेक्स्ट रंग बदलें

यह एक्सएमएल में दो तरीकों से किया जा सकता है

<item android:state_activated="true" android:color="@color/red"/>

यह पॉपअप में चयनित आइटम रंग को बदल देगा।

और JAVA से ऐसा करें (setOnItemSelectedListener (...) में

 @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                 ((TextView) parent.getChildAt(0)).setTextColor(0x00000000);
// similarly change `background color` etc.
            }


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow