zoukankan      html  css  js  c++  java
  • [android] 采用layoutInflater打气筒创建一个view对象

    上一节知道了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;
            }

    布局:

    <?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="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:text="ID"
            android:textColor="#ff0000"
            android:textSize="16sp" />
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:orientation="vertical" >
    
            <TextView
                android:id="@+id/tv_name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="姓名"
                android:textSize="16sp" />
    
            <TextView
                android:id="@+id/tv_account"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="金额"
                android:textColor="#50000000"
                android:textSize="16sp" />
        </LinearLayout>
    
    </LinearLayout>
  • 相关阅读:
    智能大数据分析平台用例
    Mapreduce实例——去重
    Mapreduce实例——求平均值
    智能大数据分析平台数据流图
    .net程序设计文件操作
    2021.11.17 Guns框架基本应用
    Guns框架基本知识
    2021.11.16 .net——Windows应用程序开发
    1129每日博客
    1126每日博客
  • 原文地址:https://www.cnblogs.com/taoshihan/p/5263525.html
Copyright © 2011-2022 走看看