如何从onItemSelectedListener获取自定义微调器的选定项位置?

时间:2016-03-28 11:27:18

标签: android android-spinner android-adapter

检查下面的图片。 我猜这个覆盖方法的arg2应该是我当前选择的项目的位置,对吧?但是,它始终是0.我想要正确的位置来做事情。有什么建议吗?

enter image description here

这是我的适配器类。

2a

2 个答案:

答案 0 :(得分:2)

我建议不要创建这样的方法并指定OnItemSelectedListener()。只需在课堂上实现此功能

即可
public class YourClass implements AdapterView.OnItemSelectedListener {}

并将this分配给Spinner

尝试像这里一样匿名进行

mySpinner = (Spinner) findViewById(R.id.mySpinner);

mySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {

             int selectedPosition = arg2; //Here is your selected position

        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub

        }       

    });

答案 1 :(得分:1)

您也可以将getCustomView(。,。,)用于此目的

public View getCustomView(int position, View convertView, ViewGroup parent) {

    View row = inflater.inflate(R.layout.taxo_spinner_item, parent, false);
    Pojo pojo = pojoList.get(position);

    //.... blah blah
    row.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

             Toast.makeText(context," position :"+position,short).show

            }
        });

    return row;
}