博客
关于我
[android] 采用layoutInflater打气筒创建一个view对象
阅读量:655 次
发布时间:2019-03-15

本文共 1328 字,大约阅读时间需要 4 分钟。

上一节知道了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.thisresource资源例如R.layout.listroot是想把这个View对象填充进去的父容器,我们这里只需返回这个对象,不用填充到父容器,写上null,这时候拿到了转换后的View对象

 

修改拿到的View对象里面控件的展示信息,调用View对象的findViewById()方法,找到对应的控件,调用TextView对象的setText()设置信息,在调用setText()方法的时候,如果传入的是个int类型会报错ResuorceNotFound,因为这个api可以传入String资源id,资源idint的,因此会误以为资源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;        }

 

布局:

 

转载地址:http://ggjmz.baihongyu.com/

你可能感兴趣的文章
Node.js 线程你理解的可能是错的
查看>>
Node.js 调用微信公众号 API 添加自定义菜单报错的解决方法
查看>>
node.js 配置首页打开页面
查看>>
node.js+react写的一个登录注册 demo测试
查看>>
Node.js中环境变量process.env详解
查看>>
Node.js之async_hooks
查看>>
Node.js初体验
查看>>
Node.js升级工具n
查看>>
Node.js卸载超详细步骤(附图文讲解)
查看>>
Node.js卸载超详细步骤(附图文讲解)
查看>>
Node.js基于Express框架搭建一个简单的注册登录Web功能
查看>>
node.js学习之npm 入门 —8.《怎样创建,发布,升级你的npm,node模块》
查看>>
Node.js安装与配置指南:轻松启航您的JavaScript服务器之旅
查看>>
Node.js安装及环境配置之Windows篇
查看>>
Node.js安装和入门 - 2行代码让你能够启动一个Server
查看>>
node.js安装方法
查看>>
Node.js官网无法正常访问时安装NodeJS的方法
查看>>
node.js模块、包
查看>>
node.js的express框架用法(一)
查看>>
Node.js的交互式解释器(REPL)
查看>>