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获取实例。

  • 相关阅读:
    8.31前端 jQuery
    8.30前端jQuery和数据结构知识
    8.29 jQuery
    8.28 jQuery
    8.27 jQuery
    8.26 js
    chrome开发工具指南(十二)
    chrome开发工具指南(十一)
    chrome开发工具指南(十)
    chrome开发工具指南(九)
  • 原文地址:https://www.cnblogs.com/fajieyefu/p/5539487.html
Copyright © 2011-2022 走看看