Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

I have an error: setOnItemClickListener cannot be used with a spinner, what is wrong?

Kindly This is my code below, and I am pasting the error messages underneath: I am trying to use setOnItemClickListener on the spinner, is it permissible?

@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);         }     }       });  }  } 

and here are the errors

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 
like image 819
Salman Amjad Avatar asked Jul 04 '12 04:07

Salman Amjad


2 Answers

See the first line of your logcat:

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

setOnItemClickListener cannot be used with a Spinner. Use setOnItemSelectedListener instead.

like image 123
Alex Lockwood Avatar answered Sep 16 '22 16:09

Alex Lockwood


As @Alex very well said, you have to use

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

Or if you are using ButterKnife:

@OnItemSelected(R.id.spinner) public void onSpinnerItemSelected(int index){     // ... } 
like image 39
voghDev Avatar answered Sep 16 '22 16:09

voghDev