布局填充器:LayoutInflater View.inflate

      
       /**
       * 创建适配器
       *   @author   Administrator
       *
       */
       public   class   PersonAdapter    extends   BaseAdapter{

               private   static   final   String   TAG   =   "PersonAdapter" ;

               /**
             * 控制listView中有多少个条目
             */
               @Override
               public   int   getCount() {
                  
                  Log. i( TAG ,   "getCount方法执行了......"   );
                  System.   out .println(   personList .size());
                     return   personList .size();
            }

      
          /**
         * 只创建一个屏幕的view
         * position:对应的view的位置
         * convertView: 拖出去的item    循环画轴效果:return   convertView
         */
               @Override
               public   View getView(   int   position, View convertView, ViewGroup parent) {
                  
               // View  view   =View.inflate( MainActivity.this,R.layout. list_item,null);
       
                  //把list_item转化成view对象:
                     //得到一个布局填充器(得到打气筒)
                  LayoutInflater inflater = LayoutInflater.from(MainActivity. this );
                     //1.xml文件id     2.将对象固定到哪里(气球上栓的绳子)
                  View view = inflater.inflate(R.layout.   list_item ,   null );   
                  
                     //得到view中控件
                  TextView tv_id = (TextView)view.findViewById(R.id. tv_personid   );
                  TextView tv_name=(TextView)view.findViewById(R.id. tv_personname   );
                  TextView tv_phone=(TextView)view.findViewById(R.id. tv_personphone   );
                  
                  
                  Person person=   personList .get(position);
                  
                  tv_id.setText(person.getId());
                  tv_name.setText(person.getName());
                  tv_phone.setText(person.getPhone());
                  
                  
                     return   view;
                  
         }               
            
            
               @Override
               public   Object getItem(   int   position) {
                     //   TODO   Auto-generated method stub
                     return   null ;
            }

               @Override
               public   long   getItemId(   int   position) {
                     //   TODO   Auto-generated method stub
                     return   0;
            }
            
            
            
            
      }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你需要在 RecyclerView 中使用两个不同的布局文件,可以在 onCreateViewHolder 方法中根据 viewType 参数的不同来返回不同的 ViewHolder 实例。以下是示例代码: 1. 首先,在 RecyclerView 的 Adapter 中添加一个常量来代表不同的 viewType,例如: ``` private static final int VIEW_TYPE_ONE = 1; private static final int VIEW_TYPE_TWO = 2; ``` 2. 然后,在 onCreateViewHolder 方法中根据 viewType 参数的不同来返回不同的 ViewHolder 实例,例如: ``` public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View itemView; if (viewType == VIEW_TYPE_ONE) { itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.homeview_list1, parent, false); } else { itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.homeview_list2, parent, false); } return new MyViewHolder(itemView); } ``` 在这段代码中,我们首先根据 viewType 参数的不同来判断当前 item 所使用的布局文件,然后使用 LayoutInflater 的 from 方法获取一个布局填充对象,使用该对象的 inflate 方法将对应的布局文件填充到 parent 容中,并将填充后的 View 传入 MyViewHolder 的构造方法中,创建一个 ViewHolder 实例并返回。 3. 最后,在 getItemViewType 方法中返回当前 item 的 viewType,例如: ``` public int getItemViewType(int position) { // 根据 position 或数据源中的数据来判断当前 item 的 viewType if (position % 2 == 0) { return VIEW_TYPE_ONE; } else { return VIEW_TYPE_TWO; } } ``` 在这段代码中,我们可以根据当前 item 的位置或数据源中的数据来判断当前 item 所使用的布局文件,然后返回对应的 viewType。这样,在 onCreateViewHolder 方法中就可以根据 viewType 参数的不同来返回不同的 ViewHolder 实例了。 注意,在使用多个布局文件时,需要保证不同的布局文件所对应的 ViewHolder 类型是不同的,否则会出现布局错乱的情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值