स्ट्रिंग के लिए स्पिनर चयनित आइटम मूल्य कैसे प्राप्त करें?


81

मेरे पास 5 स्पिनर हैं। ताकि इसको सारांश बनाया जा सके।

यह xml में स्पिनर है

<Spinner
            android:id="@+id/text_interested"
            android:layout_span="2"
            android:layout_width="wrap_content"
            android:layout_height="60px"
            android:entries="@array/interestedarrays"
            android:prompt="@string/interestedprompt" />

यह जावा में स्पिनर है

submitbtn.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
interested.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                        public void onItemSelected(
                                AdapterView<?> adapterView, View view,
                                int i, long l) {
                            interesting = interested.getItemAtPosition(i).toString();
                        }

                        public void onNothingSelected(
                                AdapterView<?> adapterView) {

                        }
                    });
    }
});

यहाँ स्पष्टीकरण:

पेज को एक बटन मिला। यह बटन दबाने पर स्पिनर का डेटा पढ़ेगा। मैंने इसके साथ आउटपुट की जाँच की

System.out.println(interested.getItemAtPosition(i).toString());

इसने मुझे कुछ भी अशक्त नहीं किया।

मान कैसे प्राप्त करें और इसे स्ट्रिंग करें?


मुझे यकीन है, आप स्पिनर से चयनित आइटम चाहते हैं जब भी उपयोगकर्ता एक बटन पर क्लिक करता है
परेश मेयानी

अपने बटन के बाहर setOnItemSelectedListener सेट करें और Onclick विधि के अंदर इस रुचि का उपयोग करें।
KK_07k11A0585

धन्यवाद, मेरी गलती ने श्रोता को बटन श्रोता के अंदर डाल दिया कि क्यों कोई जवाब नहीं
एलन लाई

1
आपका स्वागत है :)
आपी

जवाबों:


225

इसे इस्तेमाल करे:

String text = mySpinner.getSelectedItem().toString();

इस तरह आप विभिन्न स्पिनरों के लिए मूल्य प्राप्त कर सकते हैं।


27
String Text = mySpinner.getSelectedItem().toString();

या

mySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        Object item = parent.getItemAtPosition(position);
    }
    public void onNothingSelected(AdapterView<?> parent) {
    }
});

लेकिन आइटम 0 कैसे प्राप्त करें?!
आलोक राजसुकुमारन


7

यदि आपका स्पिनर SQLite कर्सर द्वारा आबाद किया गया था, तो समाधान है:

Spinner mySpin = (Spinner) findViewById(R.id.myspin);
mySpin.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {  
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
           SQLiteCursor item = (SQLiteCursor) parent.getItemAtPosition(position);
           String value = String.valueOf(item.getString(0));
           Toast.makeText(getApplicationContext(), "The option is:" + value , Toast.LENGTH_SHORT).show(); 
 }

PS: In item.getString(0)-> 0 कर्सर पर कॉलम का सूचकांक है जिसे आप प्राप्त करना चाहते हैं।


बहुत अच्छा काम करता है। आप onItemSelected सदस्य के बाहर "मान" का उपयोग कैसे करते हैं?
मार्क डेस

6

इसे इस्तेमाल करे

 final Spinner cardStatusSpinner1 = (Spinner) findViewById(R.id.text_interested);
    String cardStatusString;
    cardStatusSpinner1.setOnItemSelectedListener(new OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> parent,
                View view, int pos, long id) {
            cardStatusString = parent.getItemAtPosition(pos).toString();
        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub

        }
    });

 final Button saveBtn = (Button) findViewById(R.id.save_button);
    saveBtn .setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

            System.out.println("Selected cardStatusString : " + cardStatusString ); //this will print the result
        }
    });


5

सुझाव के अलावा,

String Text = mySpinner.getSelectedItem().toString();

तुम कर सकते हो,

String Text = String.valueOf(mySpinner.getSelectedItem());

3

जब आप स्पिनर से कोई मूल्य चुनते हैं, तो आप चयनित मूल्य प्राप्त करते हैं,

interested.getSelectedItem().toString();

3

मुझे लगता है कि जब आप बटन पर क्लिक करते हैं तो आप स्पिनर की चयनित वस्तु चाहते हैं।

GetSelectedItem () आज़माएँ :

spinner.getSelectedItem()



2

चूंकि एंड्रॉइड डेवलपमेंट के लिए नवीनतम भाषा कोटलिन है। यहाँ, बेनामी वस्तु का उपयोग करके हम इसे कोटलिन में कैसे करते हैं।

spinnerName?.onItemSelectedListener = object : AdapterView.OnItemSelectedListener{
    override fun onNothingSelected(parent: AdapterView<*>?) {
       println("Nothing Selected")
    }

    override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
       val selectedString = yourList[position]
    }

}

कोटलिन के बारे में यहां किसी ने नहीं पूछा।
user3099225

1

आपके एडॉप्टर ऑब्जेक्ट मैं उपयोग के लिए स्पिनरएड एडाप्टर लागू करके interested.getItem(i).toString()


0
    spinnerType = (AppCompatSpinner) findViewById(R.id.account_type);
    spinnerType.setPrompt("Select Type");

    spinnerType.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            TypeItem clickedItem = (TypeItem) parent.getItemAtPosition(position);
            String TypeName = clickedItem.getTypeName();
            Toast.makeText(AddAccount.this, TypeName + " selected", Toast.LENGTH_SHORT).show();
        }

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

        }
    });
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.