简单来说就是, 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还有个问题,一进入界面的时候,默认就会选择第一项,而我们并不需要这样的默认值。