怎么在Android应用中利用ListView实现一个选择模式

  介绍

怎么在Android应用中利用ListView实现一个选择模式?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

<强> ListView定义了choiceMode属性,描述是这样的:

用于为视图定义选择行为。默认情况下,列表时没有任何选择行为的。如果把choiceMode设置为singleChoice,列表允许有一个列表项处于被选状态。如果把choiceMode设置为multipleChoice,那么列表允许有任意数量的列表项处于被选状态

视图以某种方式通过支票接口处理视图的选择状态,ListView源码中有这么一段:

如果mChoiceMode !=CHOICE_MODE_NONE,,mCheckStates !=null) {
  如果孩子instanceof支票){
  ((支票)的孩子).setChecked (mCheckStates.get(位置);
  }else if (getContext () .getApplicationInfo .targetSdkVersion ()
  祝辞=android.os.Build.VERSION_CODES.HONEYCOMB) {
  child.setActivated (mCheckStates.get(位置));
  }
  }

如果需要ListView处理选择行为,需要令列表项对应的自定义视图实现支票接口,这个需要自定义

<强>创建一个国家。java

公共类国家
  最后公共静态String[]国家=new String [] {
  “Afghanistan",“Albania",“Algeria",“美国Samoa",“Andorra"
  “Angola",“Anguilla",“Antarctica",“安提瓜岛和Barbuda"
  “Argentina",“Armenia",“Aruba",“Australia",“Austria"
  “Azerbaijan",“Bahrain",“Bangladesh",“Barbados",“Belarus"
  “Belgium",“Belize",“Benin",“Bermuda",“Bhutan",“Bolivia"
  “波斯尼亚和Herzegovina",“Botswana",“布维Island",“Brazil"
  “英属印度洋Territory",“英属维尔京Islands"
  “Brunei",“Bulgaria",“布基纳法索Faso"“Burundi",“Cote d # 39; Ivoire"
  “Cambodia",“Cameroon",“Canada",“Verde"角,“开曼Islands"
  “中非Republic",“Chad",“Chile",“China"
  “圣诞Island",“或有可转换债券(吉林)Islands",“Colombia"
  “Comoros",“Congo",“库克Islands",“哥Rica",“Croatia"
  “Cuba",“Cyprus",“捷克Republic"
  “民主共和国Congo",“Denmark",“Djibouti"
  “Dominica",“多米尼加Republic",“东Timor",“Ecuador"
  “Egypt",“El Salvador"“赤道Guinea",“Eritrea"
  “Estonia",“Ethiopia",“Faeroe Islands",“福克兰Islands"
  “Fiji",“Finland"、“前南斯拉夫共和国Macedonia"
  “France",“法国Guiana",“法国Polynesia"
  “法国南部Territories",“Gabon",“Georgia",“Germany"
  “Ghana",“Gibraltar",“Greece",“Greenland",“Grenada"
  “Guadeloupe",“Guam",“Guatemala",“Guinea",“Guinea-Bissau"
  “Guyana",“Haiti",“听到岛和麦当劳Islands"
  “Honduras",“香港Kong",“Hungary",“Iceland",“India"
  “Indonesia",“Iran",“Iraq",“Ireland",“Israel",“Italy"
  “Jamaica",“Japan",“Jordan",“Kazakhstan",“Kenya",“Kiribati"
  “Kuwait",“Kyrgyzstan",“Laos",“Latvia",“Lebanon",“Lesotho"
  “Liberia",“Libya",“Liechtenstein",“Lithuania",“Luxembourg"
  “Macau",“Madagascar",“Malawi",“Malaysia",“Maldives",“Mali"
  “Malta",“马歇尔Islands",“Martinique",“Mauritania"
  “Mauritius",“Mayotte",“Mexico",“Micronesia",“Moldova"
  “Monaco",“Mongolia",“Montserrat",“Morocco",“Mozambique"
  “Myanmar",“Namibia",“Nauru",“Nepal",“Netherlands"
  “荷兰Antilles",“新Caledonia",“新Zealand"
  “Nicaragua",“Niger",“Nigeria",“Niue",“诺福克Island"
  “北Korea",“北方Marianas"“Norway",“Oman",“Pakistan"
  “Palau",“Panama",“巴布亚新Guinea",“Paraguay",“Peru"
  “Philippines",“皮特克恩Islands",“Poland",“Portugal"
  “波Rico",“Qatar",“Reunion",“Romania",“Russia",“Rwanda"
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null

怎么在Android应用中利用ListView实现一个选择模式