1. setonitemclicklistener()点击事件
listview.setOnItemClickListener (new OnItemClickListener (), { ,,,,,,,,,,@Override ,,,,,,,,,,, public void onItemClick (AdapterView<?祝辞,母公司,View 看来,,,,,,,,,,,,,,,,,,,,,int 位置,,long id), { ,,,,,,,,,,,,,,Toast.makeText (ArrayAdapterActivity.this,“你点击了第" +(位置+ 1)+“项”,Toast.LENGTH_SHORT),告诉(); ,,,,,,,,,,,} ,,,,,,,});
,
2. setonitemlongclicklistener()长按事件,<代码>设置“长按”列表视图中某一项的监听事件。代码>
listview.setOnItemLongClickListener (, OnItemLongClickListener (), {,, ,,,,,,,,,,,@Override , ,,,,,,,,,,,,,onItemLongClick (AdapterView<?祝辞,母公司,View 看,,, ,,,,,,,,,,,,,,,,,,,,,,,id), { Toast.makeText (ArrayAdapterActivity,”你了第" +(位置+ 1)+“项”,Toast.LENGTH_SHORT),告诉(); ,; }, });
<强>,二。列表视图由于项目项中包含某些可以抢焦点的控件导致无法获取焦点问题强>:
(注意:ListView的项根元素布局的宽要设置成android: layout_width=翱砗汀?否则可能会因为项内容太短,导致点击时获取不到焦点)
1祝辞。如果你自定义ListView的项中包含能获得焦点的子控件(RadioGroup、按钮、复选框、DatePicker ImageButton,滚动视图,SeekBar, EditText, ToggleButton, RatingBar等)的话,默认焦点会被交给这些子控件,而ListView的项能被选中的基础是它能获取焦点,所以项中的这些子控件的焦点必须为false,这样ListView的项才能获取onItemLongClick事件与onItemClick事件
解决办法(以按钮为例):
在布局文件中,在项的布局布局文件根元素中加入android: descendantFocusability=癰locksDescendants”如:
& lt; ?xml version=" 1.0 " encoding=" utf - 8 " ?在
& lt; RelativeLayout xmlns: android=" http://schemas.android.com/apk/res/android "
,,,android: layout_width="宽和"
,,,android: layout_height=" wrap_content "
,,,android: descendantFocusability=" blocksDescendants "在
,,,& lt; ImageView
,,,,,,,android: id=癅 + id/头”
,,,,,,,android: layout_width=" wrap_content "
,,,,,,,android: layout_height=" wrap_content "/祝辞
,,,& lt; TextView
,,,,,,,android: id=癅 + id/名称”
,,,,,,,android: layout_width=" wrap_content "
,,,,,,,android: layout_height=" wrap_content "
,,,,,,,android: layout_alignTop=" @ id/头”
,,,,,,,android: layout_toRightOf=癅 id/头”/祝辞
,,,& lt; TextView
,,,,,,,android: id=癅 + id/时代”
,,,,,,,android: layout_width=" wrap_content "
,,,,,,,android: layout_height=" wrap_content "
,,,,,,,android: layout_alignLeft=" @ id/名称"
,,,,,,,android: layout_below=" @ id/名字/祝辞
,,,& lt;按钮
,,,,,,,android: id=癅 + id/删除”
,,,,,,,android: layout_width=" wrap_content "
,,,,,,,android: layout_height=" wrap_content "
,,,,,,,android: layout_alignParentRight=" true "
,,,,,,,android:文本=癅string/deleteselect”/祝辞
& lt;/RelativeLayout>
如果布局是程序动态生成的,则调用
layout.setDescendantFocusability (ViewGroup.FOCUS_BLOCK_DESCENDANTS);
2祝辞。null null null null null null null null null null null null null null null null null null