2012-07-04 6 views
60

कृपया यह मेरा कोड नीचे है, और मैं नीचे दिए गए त्रुटि संदेशों को चिपका रहा हूं: मैं स्पिनर पर setOnItemClickListener का उपयोग करने की कोशिश कर रहा हूं, क्या यह अनुमति है?मुझे एक त्रुटि है: setOnItemClickListener का उपयोग स्पिनर के साथ नहीं किया जा सकता है, क्या गलत है?

@Override 
public void onItemClick(AdapterView<?> arg0, View v, int index, long arg3) { 
    if (quantity[index]=="Meter"){ 
     s1="Meter"; 
     Toast.makeText(v.getContext(), "convert from meter",Toast.LENGTH_SHORT).show(); 
    } 
} 

    }); 

convertto.setOnItemClickListener(new OnItemClickListener() 
{ 
    @Override 
    public void onItemClick(AdapterView<?> arg, View v1, int index1, long arg4) 
    { 
     if ((quantity[index1]=="Meter") && (s1.equalsIgnoreCase("Meter"))) 
     { 
      Toast.makeText(v1.getContext(), " to meter",Toast.LENGTH_SHORT).show(); 
      var2=var1; 
      lresult.setText("" + var2); 
     } 
    }  
}); 

} 

} 

और यहाँ त्रुटियाँ हैं

FATAL EXCEPTION: main 
07-04 09:48:39.912: E/AndroidRuntime(694): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.a2zunitconverter.miniproject/com.a2zunitconverter.miniproject.lenght}: java.lang.RuntimeException: setOnItemClickListener cannot be used with a spinner. 
07-04 09:48:39.912: E/AndroidRuntime(694): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647) 
07-04 09:48:39.912: E/AndroidRuntime(694): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
07-04 09:48:39.912: E/AndroidRuntime(694): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
07-04 09:48:39.912: E/AndroidRuntime(694): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
07-04 09:48:39.912: E/AndroidRuntime(694): at android.os.Handler.dispatchMessage(Handler.java:99) 
07-04 09:48:39.912: E/AndroidRuntime(694): at android.os.Looper.loop(Looper.java:123) 
07-04 09:48:39.912: E/AndroidRuntime(694): at android.app.ActivityThread.main(ActivityThread.java:3683) 
07-04 09:48:39.912: E/AndroidRuntime(694): at java.lang.reflect.Method.invokeNative(Native Method) 
07-04 09:48:39.912: E/AndroidRuntime(694): at java.lang.reflect.Method.invoke(Method.java:507) 
07-04 09:48:39.912: E/AndroidRuntime(694): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
07-04 09:48:39.912: E/AndroidRuntime(694): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
07-04 09:48:39.912: E/AndroidRuntime(694): at dalvik.system.NativeStart.main(Native Method) 
07-04 09:48:39.912: E/AndroidRuntime(694): Caused by: java.lang.RuntimeException: setOnItemClickListener cannot be used with a spinner. 
07-04 09:48:39.912: E/AndroidRuntime(694): at android.widget.Spinner.setOnItemClickListener(Spinner.java:102) 
07-04 09:48:39.912: E/AndroidRuntime(694): at com.a2zunitconverter.miniproject.lenght.onCreate(lenght.java:31) 
07-04 09:48:39.912: E/AndroidRuntime(694): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
07-04 09:48:39.912: E/AndroidRuntime(694): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 
07-04 09:48:39.912: E/AndroidRuntime(694): ... 11 more 
+0

setOnItemClickListener – VenomVendor

+0

एक स्पिनर के साथ उपयोग नहीं किया जा सकता है यह तब होता है जब आप स्पिनर को listView.setOnItemClicklistener कॉपी, स्पिनर लेता के रूप में आप उस के साथ कुछ करना चाहते हैं, अजीब –

उत्तर

157

अपने logcat की पहली पंक्ति देखें:

java.lang.RuntimeException: setOnItemClickListener cannot be used with a spinner. 

setOnItemClickListener एक Spinner साथ नहीं किया जा सकता है। इसके बजाय setOnItemSelectedListener का उपयोग करें।

+0

http://developer.android.com/guide/topics/ ui/control/spinner.html # selectListener – shkschneider

+0

बहुत धन्यवाद ~~~~ – Deepak

+0

अच्छा काम .................. !!! –

3

बदलें इस

convertto.setOnItemClickListener(new OnItemClickListener() 
    { 

    @Override 
    public void onItemClick(AdapterView<?> arg, View v1, int index1, long arg4) 
    { 
     if ((quantity[index1]=="Meter") && (s1.equalsIgnoreCase("Meter"))) 
     { 

     Toast.makeText(v1.getContext(), " to meter",Toast.LENGTH_SHORT).show(); 
     var2=var1; 
     lresult.setText("" + var2); 
     } 

    } 

    }); 
onItemSelectedListener को

,

convertto.setOnItemSelectedListener(new OnItemSelectedListener() { 

    public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, 
      long arg3) { 
     if ((quantity[index1]=="Meter") && (s1.equalsIgnoreCase("Meter"))) 
     { 

     Toast.makeText(v1.getContext(), " to meter",Toast.LENGTH_SHORT).show(); 
     var2=var1; 
     lresult.setText("" + var2); 
     } 


    } 

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

    } 
}); 

ऐसा लगता है कि आप अपने स्पिनर में itemClickListener उपयोग नहीं कर सकते,

यहाँ त्रुटि रेखा है जो यह बताता है है,

07-04 09:48:39.912: E/AndroidRuntime(694): Caused by: java.lang.RuntimeException: setOnItemClickListener cannot be used with a spinner. 
27

@Alex के रूप में बहुत अच्छी तरह से कहा, तुम

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

     } 

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

     } 
    }); 

उपयोग करने के लिए या आप ButterKnife उपयोग कर रहे हैं:

@OnItemSelected(R.id.spinner) 
public void onSpinnerItemSelected(int index){ 
    // ... 
} 
0

Kotlin:

spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener { 
    override fun onItemSelected(parent: AdapterView<*>, view: View, position: Int, id: Long) { 
     print("onItemSelected position = $position id = $id") 
    } 

    override fun onNothingSelected(parent: AdapterView<*>) { 

    } 
} 

क्योंकि इनलाइन से वस्तु बनाने मैं इसे लिखा था इंटरफ़ेस अलग है।

मुझे आशा है कि यह किसी की मदद करेगी।

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