Java android-Spinner SetonimeClickListener不';不接受实现OnItemClickListener的命名类作为参数
在我的android应用程序中,我有一个微调器,我尝试检测项目何时被选中。我知道这可以通过使用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
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
和布局
谢谢,它成功了。我不知道上次试的时候为什么没有,但现在有了。也许我在什么地方打错了。