मेरे सिस्टम में दो स्पिनर हैं। अब मुझे पहले स्पिनर मूल्य के आधार पर दूसरे स्पिनर के चयनित मूल्य को बदलना होगा। जैसे ही उपयोगकर्ता पहला स्पिनर मान बदल देगा, दूसरा स्पिनर मान स्वचालित रूप से पहले स्पिनर के चयनित मूल्य के आधार पर सेट हो जाएगा। इसे कैसे कार्यान्वित करें?मूल्य पर स्पिनर
उत्तर
:
अब एक नेस्टेड वर्ग कि AdapterView.OnItemSelectedListener लागू करता है बनाएँ। यह एक कॉलबैक विधि प्रदान करेगा जो स्पिनर से आइटम चुने जाने पर आपके एप्लिकेशन को सूचित करेगा। यहां बताया गया है इस वर्ग कैसा दिखना चाहिए:
public class MyOnItemSelectedListener implements OnItemSelectedListener {
public void onItemSelected(AdapterView<?> parent,
View view, int pos, long id) {
Toast.makeText(parent.getContext(), "The planet is " +
parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show();
}
public void onNothingSelected(AdapterView parent) {
// Do nothing.
}
}
AdapterView.OnItemSelectedListener onItemSelected() और onNothingSelected() कॉलबैक तरीकों की आवश्यकता है। पूर्व को तब कहा जाता है जब एडाप्टर व्यू से कोई आइटम चुना जाता है, इस मामले में, एक छोटा टोस्ट संदेश चयनित टेक्स्ट प्रदर्शित करता है; और उत्तरार्द्ध को तब कहा जाता है जब एक एडाप्टर व्यू से चयन गायब हो जाता है, जो इस मामले में नहीं होता है, इसलिए इसे अनदेखा किया जाता है। अब MyOnItemSlectedListener को स्पिनर पर लागू करने की आवश्यकता है। ऑनक्रेट() विधि पर वापस जाएं और अंत में निम्न पंक्ति जोड़ें: spinner.setOnItemSlectedListener (नया MyOnItemSlectedListener());
दूसरे शब्दों में, आपको एक ऑनइटम सेलेक्टेड लिस्टर बनाने की आवश्यकता है जो दूसरे स्पिनर के मान को संशोधित करता है, और इसे पहले स्पिनर से जोड़ता है।
आपको पहली बार स्पिनर के पर पर स्थिति डालना होगा। इस उदाहरण से आप 1 स्पिनर के आधार पर 2 स्पिनर का मूल्य प्राप्त कर सकते हैं:
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,long arg3) {
if(arg0.equals(spin0)){
spin1.setClickable(true);
if(spin0.getSelectedItem().equals("India"))
{
ArrayAdapter <String> s1 = new ArrayAdapter <String> (this,android.R.layout.simple_spinner_item,states_india);
s1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spin1.setAdapter(s1);
}
else if(spin0.getSelectedItem().equals("Pakistan"))
{
ArrayAdapter <String> s2 = new ArrayAdapter <String> (this,android.R.layout.simple_spinner_item,states_pak);
s2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spin1.setAdapter(s2);
}
else if(spin0.getSelectedItem().equals("China"))
{
ArrayAdapter <String> s3 = new ArrayAdapter <String> (this,android.R.layout.simple_spinner_item,states_china);
s3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spin1.setAdapter(s3);
}
}
}
एक स्पिनर आइटम क्लिक ईवेंट का समर्थन नहीं करता है। इस विधि को कॉल करने से अपवाद बढ़ जाएगा। इसके बजाय AdapterView setOnItemSelectedListener का उपयोग करें। – felansu
आप प्रत्येक स्पिनर के लिए अलग से) onItemSelected (परिभाषित करना चाहिए। अन्यथा यदि स्पिनरों से कुछ भी चुना जाता है तो कोड निष्पादित हो जाता है।
newCategory.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
String selCat = newCategory.getItemAtPosition(arg2).toString();
if (selCat != "New")
{
loadSpinnerData(topic);
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
newTopic.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
loadSpinnerData()
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
- 1. स्पिनर मूल्य कैसे प्राप्त करें?
- 2. एंड्रॉइड स्पिनर
- 3. स्पिनर
- 4. स्पिनर
- 5. स्पिनर
- 6. स्पिनर
- 7. स्पिनर
- 8. एंड्रॉयड स्पिनर: केंद्र पाठ खड़ी स्पिनर
- 9. स्पिनर को रीफ्रेश करना
- 10. स्पिनर - पहले आइटम पर ध्यान दें
- 11. Android पर दिनांक स्पिनर कैसे बनाएं
- 12. एक्शनबार पर प्रगति स्पिनर (रीफ्रेश) दिखाएं?
- 13. एंड्रॉयड - स्पिनर कॉन्फ़िगर मैं अपने स्पिनर घोषित सरणी
- 14. स्पिनर एंड्रॉइड
- 15. एक गतिविधि में दो स्पिनर
- 16. स्पिनर से चयनित आइटम पुनर्प्राप्त?
- 17. एक्शनबारशेलॉक ड्रॉपडाउन नेविगेशन स्पिनर
- 18. मैं स्पिनर setOnItemLongClickListener
- 19. एंड्रॉइड स्पिनर चयन
- 20. एंड्रॉइड स्पिनर सेट मान
- 21. एंड्रॉइड - सेट स्पिनर स्टार्ट पॉइंट
- 22. स्पिनर प्रदर्शित आइटम
- 23. एंड्रॉइड: प्रगति संवाद स्पिनर
- 24. ऐरेएडाप्टर: जेसन डेटा स्पिनर
- 25. jQueryUI स्पिनर विजेट नॉकआउट
- 26. प्राइमफेस स्पिनर - चौड़ाई
- 27. स्पिनर छोटे आकार
- 28. अक्षम स्पिनर एंड्रॉयड
- 29. स्पिनर का टेक्स्ट साइज
- 30. एंड्रॉइड स्पिनर को ENUM मान रखें?
क्या "उपकरण" के बिना इसे लागू करना संभव नहीं है? –
मुझे प्रश्न समझ में नहीं आता है। आप एक अनाम वर्ग है कि इंटरफ़ेस को लागू करता है बना सकते हैं, लेकिन हाँ आप कुछ बिंदु पर एक वस्तु इसी क्रम में इंटरफ़ेस स्पिनर के लिए एक श्रोता के रूप में यह जोड़ने के लिए लागू करता है कि बनाना होगा। – I82Much