ListView +适配器适配器的使用与ListView常见的UI显示问题

  

 1. setonitemclicklistener()点击事件

 ListView +适配器适配器的使用与ListView常见的UI显示问题

 listview.setOnItemClickListener (new  OnItemClickListener (), {
  ,,,,,,,,,,@Override ,,,,,,,,,,, public  void  onItemClick (AdapterView<?祝辞,母公司,View 看来,,,,,,,,,,,,,,,,,,,,,int 位置,,long  id), {
  ,,,,,,,,,,,,,,Toast.makeText (ArrayAdapterActivity.this,“你点击了第" +(位置+ 1)+“项”,Toast.LENGTH_SHORT),告诉();
  ,,,,,,,,,,,}
  ,,,,,,,});

 ListView +适配器适配器的使用与ListView常见的UI显示问题

,

2. setonitemlongclicklistener()长按事件,<代码>设置“长按”列表视图中某一项的监听事件。

 ListView +适配器适配器的使用与ListView常见的UI显示问题

 listview.setOnItemLongClickListener (, OnItemLongClickListener (), {,,
  ,,,,,,,,,,,@Override ,
  ,,,,,,,,,,,,,onItemLongClick (AdapterView<?祝辞,母公司,View 看,,,
  ,,,,,,,,,,,,,,,,,,,,,,,id), {
  Toast.makeText (ArrayAdapterActivity,”你了第" +(位置+ 1)+“项”,Toast.LENGTH_SHORT),告诉();
  ,;
  },
  });

 ListView +适配器适配器的使用与ListView常见的UI显示问题

<强>,二。列表视图由于项目项中包含某些可以抢焦点的控件导致无法获取焦点问题:

(注意:ListView的项根元素布局的宽要设置成android: layout_width=翱砗汀?否则可能会因为项内容太短,导致点击时获取不到焦点)

1祝辞。如果你自定义ListView的项中包含能获得焦点的子控件(RadioGroup、按钮、复选框、DatePicker ImageButton,滚动视图,SeekBar, EditText, ToggleButton, RatingBar等)的话,默认焦点会被交给这些子控件,而ListView的项能被选中的基础是它能获取焦点,所以项中的这些子控件的焦点必须为false,这样ListView的项才能获取onItemLongClick事件与onItemClick事件

解决办法(以按钮为例):

在布局文件中,在项的布局布局文件根元素中加入android: descendantFocusability=癰locksDescendants”如:

 ListView +适配器适配器的使用与ListView常见的UI显示问题

& 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>

 ListView +适配器适配器的使用与ListView常见的UI显示问题

如果布局是程序动态生成的,则调用

 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

ListView +适配器适配器的使用与ListView常见的UI显示问题