ListView和RatingBar【DOC精选】.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ListView和RatingBar【DOC精选】

ListView和RatingBar 在学习笔记(十七)中,我们对ListView做了进一步的探讨,然而给出的例子list中的元素可以有多个widget,并可灵活设置他们的值,但是这些widget之间缺乏互动,而且getView()的调用,需要重刷给list的entry,我们希望能够在entry中触发变化。 本次,我们继续根据《Beginging Android 2》的学习,结合RatingBar,将程序稍微复杂一点。RatingBar看用于媒体库的平级,我们用RatingBar取代了之前例子的图标,当RatingBar设置为三星时,该entry后面的文本改为大写,如果低于三星将恢复原来的小写显示。 例子:自定义数据结构和内部widget的触发处理 1)Android XML文件:用RatingBar替代之前例子的ImageView ?xml version=1.0 encoding=utf-8? LinearLayout …… RatingBar android:id=@+id/c85_rating android:layout_width=wrap_content android:layout_height=wrap_content android:numStars = 3 !-- 设置三星平级方式-- android:stepSize = 0.5 !--step为0.5,也就是允许2.5的星级评比 -- android:rating = 2/ !-- 缺省为2星-- TextView android:id=@+id/c85_label android:paddingLeft=2px android:paddingRight=2px android:paddingTop=10px android:textSize=24sp android:layout_width=fill_parent android:layout_height=wrap_content / /LinearLayout 2)设置自定制数据结构来存储信息,并提供查询信息的方法 在之前的例子中,我们使用了ArrayListString来存放每个单元的数据信息,在这个例子中,作为更通用的方式,每个单元信息为我们自定的类RowModel。 class RowModel{ String label; //存储entry的当前文本显示内容,通过调用toString()给出,如果三星将提供大写显示。 float rating = 2.0f; //存储entry的星级数据,对应RatingBar的星级显示 RowModel(String label){ this.label = label; } public String toString(){ if(rating = 3.0){ return label.toUpperCase(); } return label; } } 在我们的主类中,根据自定义的数据结构设置我们的数据信息list,并导入list adapter中,同时我们增加一个方法,根据position(index)来从数据信息中获取该单元的数据。 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ArrayListRowModel list = new ArrayListRowModel(); //步骤1:list作为数据的存储 for(String s: items){ //步骤2:将String[] items的信息导入list中,这种写法比较特别,我一般会老老实实for(int i =0; i items.length; i++)的方式来写。 list.add(new RowModel(s)); } setListAdapter(new RatingAdapter(list)); //步骤3:设置自定制的listadapter(具体在后面处理),并将信息数据list导入其中 } //根据List的位置,获得具体的list元素,一般add,del,find的处理中,相当于find private RowModel getModel(int position){ return ((Rating

文档评论(0)

taotao0b + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档