我的问题是:我希望有3个不同的微调器,显示相同类型的对象,我希望能够识别从哪个微调器获取数据,例如:在微调器1中,用户选择“马铃薯”在微调器2,用户选择“番茄”在微调器3中,用户选择“薯条”
但我只能得到“用户选择[...]”,因为我不知道如何判断我从哪个微调器获取数据。
我想知道是否有办法在onItemSelected(AdapterView父视图,视图视图,int位置,长id)方法上执行此操作?
可能你已经为所有的微调器设置了一个共同的监听器,所以你可以通过检查parent.getId()
来区分选择了哪个微调器:
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
switch (parent.getId()){
case R.id.spinner1:
//your code here
break;
case R.id.spinner2:
//your code here
break;
case R.id.spinner3:
//your code here
break;
}
}
View视图很可能是进行选择的微调器。如果在程序开头将每个微调器的.tag = 1设置为不同的数字,那么您将能够查看传递给onItemSelected方法的标记值:
if (view.tag == 1)...
对于检查微调器的位置以及从哪个微调器获得它的Easy Just Put Log in the spinner onItemSelected:
Log.e("Position of Spinner", country[position] //Just pass the array name of spinner.)
要么
Log.e("Position of Spinner",spinner1.getSelectedItemPosition());
对于获取ID:
Log.e("Position of Spinner", country[position].id.toString)