上一节知道了ListVIEw的工作原理,数据也展示出来了,但是TextVIEw显示的非常难看,如果想美化一下,就先创建好一个布局出来,这个布局采用了两层linearLayout嵌套,外层的水平方向,内层的竖直方向,androID:gravity=”center_vertical”内容竖直居中,androID:layout_marginleft左边距,androID:textcolor=”#55000000”前两个是透明度等。
在上一节的adapter实现类中,getVIEw()方法中,想办法把xml文件转成可以显示的VIEw对象,调用VIEw类的inflate(context,resuorce,root)方法,context上下文,内部类调用外部类Activity的对象MainActivity.this,resource资源例如R.layout.List,root是想把这个VIEw对象填充进去的父容器,我们这里只需返回这个对象,不用填充到父容器,写上null,这时候拿到了转换后的VIEw对象
修改拿到的VIEw对象里面控件的展示信息,调用VIEw对象的findVIEwByID()方法,找到对应的控件,调用TextVIEw对象的setText()设置信息,在调用setText()方法的时候,如果传入的是个int类型会报错ResuorceNotFound,因为这个API可以传入String资源ID,资源ID是int的,因此会误以为资源ID,报找不到资源,所以setText()int的时候一定要转一下
activity:
@OverrIDe public VIEw getVIEw(int position,VIEw convertVIEw,VIEwGroup parent) { Person person=persons.get(position); VIEw List=VIEw.inflate(MainActivity.this,R.layout.List_item,null); TextVIEw tv_ID=(TextVIEw) List.findVIEwByID(R.ID.tv_ID); TextVIEw tv_name=(TextVIEw) List.findVIEwByID(R.ID.tv_name); TextVIEw tv_account=(TextVIEw) List.findVIEwByID(R.ID.tv_account); tv_ID.setText("ID:"+person.getID()); tv_name.setText("姓名:"+person.getname()); tv_account.setText("金额"+person.getID()); return List; }
布局:
<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:gravity="center_vertical" androID:orIEntation="horizontal" > TextVIEw androID:ID="@+ID/tv_ID" androID:layout_wIDth androID:layout_height androID:layout_marginleft="5dp" androID:text="ID" androID:textcolor="#ff0000" androID:textSize="16sp" /> linearLayout androID:layout_wIDth="10dp" androID:orIEntation="vertical" > TextVIEw ="@+ID/tv_name" androID:layout_wIDth androID:layout_height androID:text="姓名" androID:textSize/> ="@+ID/tv_account"="金额" androID:textcolor="#50000000"/> </linearLayout>>
总结
以上是内存溢出为你收集整理的[android] 采用layoutInflater打气筒创建一个view对象全部内容,希望文章能够帮你解决[android] 采用layoutInflater打气筒创建一个view对象所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)