默认情况下,ListView中适配器为BaseAdapter为例,默认情况下Item点击之后没有任何效果,原因是在点击Item的时候获取的焦点是子控件,为了解决这问题只需要在Item的根布局写上 android:descendantFocusability=""
beforeDescendants:ViewGroup会优先与子控件获取焦点
afterDescendants:VIewGroup会在子控件不需要获取的焦点的时候获取焦点
blocksDescendants:ViewGroup会覆盖子控件而获取焦点
经过测试,当不设置或者设置为beforeDescendants或afterDescendants的时候,只需要将子控件的android:focusable="false"设置为false即可实现,更简便的方法就是设置blocksDescendants即可。
注: lv.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { } } @Override public void onNothingSelected(AdapterView<?> parent) { // TODO Auto-generated method stub } });
此事件在触屏手机上不适用,只有在硬键盘的模拟器上才能触发。(模拟器打开硬键盘的方法在.android/avd/iPhone.avd/config.ini配置文件将hw.dPad置为yes即可)