Android 选择多个微调器和微调器

Android 选择多个微调器和微调器,android,events,spinner,Android,Events,Spinner,我有两个微调器来触发所选事件。问题是我如何知道是哪一个触发了这样的事件?到目前为止,我试过: public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { Log.d("form","onitemselected"); switch (view.getId()) { case R.id.region_spinner: Region

我有两个微调器来触发所选事件。问题是我如何知道是哪一个触发了这样的事件?到目前为止,我试过:

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

    Log.d("form","onitemselected");
    switch (view.getId()) {
    case R.id.region_spinner:
        Region r = (Region)sregions.getSelectedItem();
        Log.d("form","regionid:" + r.id);
        break;
    case R.id.state_spinner:
        Log.d("form","state id:");
        break;
    }
public void已选择(AdapterView父视图、视图视图、int位置、长id)
{
日志d(“表格”,“未选定”);
开关(view.getId()){
案例R.id.region_微调器:
Region r=(Region)sregions.getSelectedItem();
日志d(“表格”、“区域id:+r.id”);
打破
案例R.id.state_微调器:
Log.d(“表格”,“状态id:”);
打破
}
但只显示第一个日志,因此开关中没有匹配项。

使用:

switch(parent.getId()) {
    ...
}
相反,这是你需要的。
参数中的
视图
是实际的“行”(即微调器项的单击子项),并且父对象是您所追求的实际“微调器”。

微调器是AdapterView的子类。传递到方法中的父对象是选择项目的微调器。

如果您在一个活动中有多个微调器,并且使用的是onItemSelected override方法,请使用下面的代码

override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
         if (parent!!.id == R.id.spinner_1) {
            // first spinner selected
         } else if (parent!!.id == R.id.spinner_2) {
            // second spinner selected
         }
    }
覆盖已选择(父项:AdapterView?,视图:view?,位置:Int,id:Long){
if(parent!!.id==R.id.spinner\u 1){
//选择的第一个微调器
}else if(parent!!.id==R.id.spinner_2){
//选择第二个微调器
}
}

您可以使用switch case

如果您在Kotlin上导入XML,您可以这样使用它:

override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: 
Long) {
when (parent)
    firstSpinner -> {
        // first spinner selection
        }
    secondSpinner -> {
        // second spinner selected
        }
    }
}
已选择覆盖视图(父级:AdapterView?,视图:view?,位置:Int,id:
(长){
何时(家长)
第一微调器->{
//第一微调器选择
}
第二微调器->{
//选择第二个微调器
}
}
}

你能举例说明吗?不知道是不是因为版本不同,但对我来说是:
adapterView.getId()
。希望这能帮助别人。