親切にこれは私の下のコードであり、エラーメッセージを下に貼り付けています:スピナーで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
Logcatの最初の行を参照してください。
Java.lang.RuntimeException: setOnItemClickListener cannot be used with a spinner.
setOnItemClickListener
はSpinner
と一緒に使用できません。代わりにsetOnItemSelectedListener
を使用してください。
@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){
// ...
}
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<*>) {
}
}
インターフェイスからオブジェクトを作成するインラインが異なるため、私はそれを書きました。
私はそれが誰かを助けることを願っています。
これを変える
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
}
});
SpinnerでitemClickListenerを使用できないようです。
これを説明するエラー行があります、
07-04 09:48:39.912: E/AndroidRuntime(694): Caused by: Java.lang.RuntimeException: setOnItemClickListener cannot be used with a spinner.