Android自定义组合控件:SherlockSpinner

t call setOnClickListener for an AdapterView. You probably want setOnItemClickListener instead at android.widget.AdapterView.setOnClickListener(AdapterView.java:798) at com.sherlockshi.widget.MainActivity.initSystemSpinner(MainActivity.java:169) at com.sherlockshi.widget.MainActivity.onCreate(MainActivity.java:48) ...

简单来说就是, AdapterView 不能设置Click事件,看下Spinner源码,确实是继承自 AdapterView 。(至于为什么 AdapterView 不能设置Click事件,这个暂未深究。)

4. 那我们就设置Touch事件喽:

spnLanguages.setOnTouchListener(new View.OnTouchListener() {    @Override    public boolean onTouch(View v, MotionEvent event) {        switch (event.getAction()) {            case MotionEvent.ACTION_DOWN:                showMessage("Touch Spinner");                break;        }        return false;    }});

这下确实是可以响应点击事件了,但是响应完,下拉选择就直接显示出来了,无法满足我们的需求。

而且Spinner还有个问题,一进入界面的时候,默认就会选择第一项,而我们并不需要这样的默认值。

二、CustomSpinner = EditText + ListPopupWindow