在看4.2.2apidemos中的代码时,在com.example.android.apis.view.List14中看到如下代码
        /**
         * Make a view to hold each row.
         *
         * @see android.widget.ListAdapter#getView(int, android.view.View,
         *      android.view.ViewGroup)
         */
        public View getView(int position, View convertView, ViewGroup parent) {
            // A ViewHolder keeps references to children views to avoid unneccessary calls
            // to findViewById() on each row.
            ViewHolder holder;            // When convertView is not null, we can reuse it directly, there is no need
            // to reinflate it. We only inflate a new View when the convertView supplied
            // by ListView is null.
            if (convertView == null) {
                convertView = mInflater.inflate(R.layout.list_item_icon_text, null);                // Creates a ViewHolder and store references to the two children views
                // we want to bind data to.
                holder = new ViewHolder();
                holder.text = (TextView) convertView.findViewById(R.id.text);
                holder.icon = (ImageView) convertView.findViewById(R.id.icon);                convertView.setTag(holder);
            } else {
                // Get the ViewHolder back to get fast access to the TextView
                // and the ImageView.
                holder = (ViewHolder) convertView.getTag();
            }            // Bind the data efficiently with the holder.
            holder.text.setText(DATA[position]);
            holder.icon.setImageBitmap((position & 1) == 1 ? mIcon1 : mIcon2);            return convertView;
        }        static class ViewHolder {
            TextView text;
            ImageView icon;
        }
想到有个问题是:如果我想单独给TextView写个OnClick方法,应该怎么取得这个View的实例呢?BaseAdapter中有什么方法能实现吗?
或者我能直接取得包裹text和icon的LinearLayout实例吗?这个实例在Activity中应该是个ListItem。listview

解决方案 »

  1.   

    直接holder.text.setOnClickListener(***)就行啊
      

  2.   

    举个例子吧,如果在text上setOnClickListener,那么在OnClick方法里怎么取得icon?就是说,我想通过点击text,改变icon,这样行吗?
      

  3.   

    直接在getView这个函数里面操作,holder.text和holder.icon实例都已经有
    final ImageView iconView = holder.icon;
    holder.text.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    iconView.setImageResource(R.drawable.xxxxx);
                }
            });
    楼主试试。
      

  4.   


    bingo,你说我怎么就没想到呢,谢了