zoukankan      html  css  js  c++  java
  • View的setTag和getTag方法

    ---恢复内容开始---

    public View getView(int position, View convertView, ViewGroup parent) {
            Msg msg =getItem(position);
            View view;
            ViewHolder viewHolder;
            if(convertView==null){
                view=LayoutInflater.from(getContext()).inflate(resourceId, null);
                viewHolder = new ViewHolder();
                viewHolder.leftLayout=(LinearLayout)view.findViewById(R.id.left_layout);
                viewHolder.rigthLayout=(LinearLayout)view.findViewById(R.id.right_layout);
                viewHolder.leftMsg=(TextView)view.findViewById(R.id.left_msg);
                viewHolder.rigthMsg=(TextView)view.findViewById(R.id.right_msg);
                view.setTag(viewHolder);
            }
            else{
                view=convertView;
                viewHolder=(ViewHolder)view.getTag();
            }
            if(msg.getType()==Msg.TYPE_RECEIVED){
                viewHolder.leftLayout.setVisibility(View.VISIBLE);
                viewHolder.rigthLayout.setVisibility(View.GONE);
                viewHolder.leftMsg.setText(msg.getContent());
            }else if(msg.getType()==Msg.TYPE_SENT){
                viewHolder.leftLayout.setVisibility(View.GONE);
                viewHolder.rigthLayout.setVisibility(View.VISIBLE);
                viewHolder.rigthMsg.setText(msg.getContent());
            }
            return view ;
        }
        
        class ViewHolder{
            LinearLayout leftLayout;
            LinearLayout rigthLayout;
            TextView leftMsg;
            TextView rigthMsg;
        }

    ---恢复内容结束---

    这段代码从写了ArrayAdapter中getview方法,ViewHolder用于对控件的实例进行缓存。

    其中用到了View的setTag()和getTag()方法

    setTag()用于给View添加额外的数据,可以使用getTag()方法获取出这个额外的数据。

    在此段代码中,我们把控件的实例都缓存在了ViewHolder中,就没有必要每次都通过findviewbyid获取实例。

  • 相关阅读:
    Web自动化测试之滑动验证码的解决方案
    设计模式之单例
    设计模式之原型
    设计模式之建造者
    DG环境RMAN删除归档报错RMAN-08137: archived log not deleted【转载】
    RFS[3]: No standby redo logfiles available for thread 1
    spring-boot之webflux简单入门
    spring-boot-security组件总结补充
    spring-boot启用security组件 · 下
    spring-boot启用security组件 · 中
  • 原文地址:https://www.cnblogs.com/fajieyefu/p/5539487.html
Copyright © 2011-2022 走看看