91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

View.setTag()

發布時間:2020-07-18 04:14:01 來源:網絡 閱讀:784 作者:chuxin2009 欄目:移動開發

相信大部分人對View.setTag()方法不太在意,但是在實際的開發中,對系統軟件的優化中,這個是非常重要的一個方法。setTag()方法可以為不同,可以將一些數據存放到View當中。放出一個例子大家體會一下。

重寫BaseAdapter的getView()方法:

package com.example.multialbum;

import java.util.ArrayList;
import java.util.List;

import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.nostra13.universalp_w_picpathloader.core.ImageLoader;


public class AlbumListViewAdapter extends BaseAdapter
{
    protected ImageLoader p_w_picpathLoader = ImageLoader.getInstance();
    private LayoutInflater mInflater;
    private List<Album> mAlbums;
    private Context context;

    private String TAG = AlbumListViewAdapter.class.getSimpleName();

    /**
     * 列表項目View持有者
     *
     */
    public class ViewHolder
    {
        ImageView mAlbumCover;
        TextView mAlbumName;
        TextView mAlbumNum;
    }

    /**
     * 適配器構造器
     *
     * @param ctx
     *            Context 上下文
     */
    public AlbumListViewAdapter(Context ctx)
    {
        this.context = ctx;
        mAlbums = new ArrayList<Album>(0);
        mInflater = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

    /**
     * 設置新的相冊數據
     */
    public void setAlbumsList(List<Album> albums)
    {
        mAlbums.clear();
        mAlbums.addAll(albums);
        notifyDataSetChanged();// 通知刷新listView。
    }

    /**
     * 
     */
    public void addAlbums(List<Album> albums)
    {
        mAlbums.addAll(albums);
        notifyDataSetChanged();
    }

    @Override
    public int getCount()
    {
        return mAlbums.size();
    }

    /**
     * 清除所有項目。
     */
    public void clear()
    {
        mAlbums.clear();
    }

    @Override
    public Object getItem(int position)
    {
        if (mAlbums.isEmpty() || position >= mAlbums.size()) {
            return null;
        }
        return mAlbums.get(position);
    }

    @Override
    public long getItemId(int position)
    {
        return position;
    }

    @Override
    public View getView(int position, View view, ViewGroup viewGroup)
    {
        ViewHolder holder;
        if (view == null) {
            view = mInflater.inflate(R.layout.album_list_item, null);
            holder = new ViewHolder();
            // 獲取到資源
            holder.mAlbumCover = (ImageView) view
                    .findViewById(R.id.album_cover);
            holder.mAlbumName = (TextView) view
                    .findViewById(R.id.album_name);
            holder.mAlbumNum = (TextView) view
                    .findViewById(R.id.album_num);
            view.setTag(holder);
        } else {
            holder = (ViewHolder) view.getTag();
        }
        Log.d(TAG, String.format(" poistion = %d", position));

        Album album = mAlbums.get(position);
        holder.mAlbumName.setText(album.mName);
        holder.mAlbumNum.setText(album.mNum);
        p_w_picpathLoader.displayImage("file://" + album.mCoverUrl, holder.mAlbumCover, Constants.p_w_picpath_display_options, new Util.AnimateFirstDisplayListener());

        return view;
    }
}

除此之外,setTag()可以為View添加標記,通過getTag()方法取得標記。可以根據標記來判斷是不是原來的特定View

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

定兴县| 博乐市| 青河县| 江北区| 安宁市| 丽江市| 丰原市| 凯里市| 左贡县| 清流县| 新乐市| 台前县| 石柱| 龙川县| 普兰店市| 马尔康县| 建宁县| 白玉县| 古交市| 九龙坡区| 焦作市| 海晏县| 潼关县| 库尔勒市| 唐海县| 沙河市| 荔浦县| 宜阳县| 老河口市| 旬阳县| 平昌县| 翁牛特旗| 博爱县| 辉南县| 图们市| 郸城县| 来凤县| 宝清县| 搜索| 百色市| 龙泉市|