Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android-Spinner SetonimeClickListener不';不接受实现OnItemClickListener的命名类作为参数_Java_Android_Spinner_Onitemselectedlistener - Fatal编程技术网

Java android-Spinner SetonimeClickListener不';不接受实现OnItemClickListener的命名类作为参数

Java android-Spinner SetonimeClickListener不';不接受实现OnItemClickListener的命名类作为参数,java,android,spinner,onitemselectedlistener,Java,Android,Spinner,Onitemselectedlistener,在我的android应用程序中,我有一个微调器,我尝试检测项目何时被选中。我知道这可以通过使用setOnItemSelectedListener()方法来实现,但我不明白的是,这样做很好: ((Spinner)findViewById(R.Id.mySpinner)).setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { // implement onItemClick here

在我的android应用程序中,我有一个微调器,我尝试检测项目何时被选中。我知道这可以通过使用
setOnItemSelectedListener()
方法来实现,但我不明白的是,这样做很好:

((Spinner)findViewById(R.Id.mySpinner)).setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
    {
        // implement onItemClick here
    });
虽然这会导致参数“不适用于”微调器的错误:

((Spinner)findViewById(R.Id.mySpinner)).setOnItemSelectedListener(new MyOnItemSelectedListener());
其中MyOnItemSelectedListener是这样的,它是我的MainActivity中的一个嵌套类:

private class MyOnItemSelectedListener implements AdapterView.OnItemSelectedListener
{
    public MyOnItemSelectedListener() {}

    // implement onItemClick here
}
我想要实现的不仅仅是代码,我已经有了。它是易于阅读的代码(使用代码中事物的真实名称和MainActivity类的结构,使用嵌套类比使用匿名类更容易阅读)


我对java的理解是,这两个类本质上应该是相同的,只是一个类有名称,另一个没有名称。

在代码中,您使用了
Id
R.Id.mySpinner
)而不是
Id
R.Id.mySpinner

代码中的这两个实现肯定会起作用

初始化微调器:

Spinner spinner = new Spinner(getActivity());
spinner.setOnItemSelectedListener(new MySpinner());
内部类:

private class MySpinner implements AdapterView.OnItemSelectedListener{

    public MySpinner(){}

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

    }

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

    }
}
私有类MySpinner实现AdapterView.OnItemSelectedListener{
公共MySpinner(){}
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
}
@凌驾
未选择公共无效(AdapterView父级){
}
}

这对我来说真的很好。检查您的
id
布局

谢谢,它成功了。我不知道上次试的时候为什么没有,但现在有了。也许我在什么地方打错了。