Bitte Dies ist mein Code unten, und ich füge die folgenden Fehlermeldungen ein: Ich versuche, ihn setOnItemClickListener
auf dem Spinner zu verwenden. Ist dies zulässig?
@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);
}
}
});
}
}
und hier sind die fehler
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
java
android
android-spinner
Salman Amjad
quelle
quelle
Antworten:
Siehe die erste Zeile Ihres Logcats:
setOnItemClickListener
kann nicht mit a verwendet werdenSpinner
. Verwenden SiesetOnItemSelectedListener
stattdessen.quelle
Wie @Alex sehr gut gesagt hat, muss man verwenden
Oder wenn Sie ButterKnife verwenden:
quelle
Kotlin:
Ich habe es geschrieben, weil das Inline-Erstellen von Objekten über die Benutzeroberfläche anders ist.
quelle
Ändere das
zu onItemSelectedListener,
Es sieht so aus, als könnten Sie itemClickListener nicht in Ihrem Spinner verwenden.
Hier ist die Fehlerzeile, die es erklärt:
quelle
Ändern Sie einfach Ihr Implementierungsformular
setOnItemClickListener
insetOnItemSelectedListener
. Ihr Code sollte danach ohne Fehler einwandfrei funktionieren.Java:
Kotlin:
quelle
Gelöst von
quelle