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

溫馨提示×

溫馨提示×

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

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

自定義IBaseAdapter,簡化適配器重復的步驟

發布時間:2020-08-02 02:51:39 來源:網絡 閱讀:410 作者:Mr丶耳釘哥 欄目:開發技術

目前我 listView 用的還是比較多,所以經常要適配器。就發現很多重復的步驟了。趕在今天狀態好,就試著寫了一個IBaseAdapter 

因為泛型不會用 百度了才知道怎么用。然后才知道 這個Baseadapter大神們早就寫了,跟我想的沒差。哦,應該是我的跟大神的基本相同。就記錄一下了

IBaseAdapter<> BaseAdapter {



    Context getContext() {
        ;
    }

    Context ;

    List<> ;

    List<> getmLists() {
        ;
    }

    setmLists(List<> mLists) {
        .= mLists;
    }

    IBaseAdapter(Context context,List<> mLists) {
        init(context,mLists);
    }

    IBaseAdapter(Context context) {
        init(context,ArrayList<>());
    }

    upDate(List<> mLists){
        .= mLists;
        notifyDataSetChanged();
    }

    clean(){
        (!= ) {
            ..clear();
            notifyDataSetChanged();
        }
    }

    addAll(List<> list) {
        (!= list) {
            ..addAll(list);
            notifyDataSetChanged();
        }
    }

    remove(position){
        (!= ) {
            ..remove(position);
            notifyDataSetChanged();
        }
    }

    init(Context context,List<> mLists){
        .= context;
        .= mLists;
    }

    getLayoutId();

    getView(position, View convertView);

    getCount() {
        == ?:.size();
    }

    getItem(position) {
        == ?:.get(position);
    }

    getItemId(position) {
        position;
    }

    View getView(position, View convertView, ViewGroup parent) {
        (convertView == ){
            layoutId = getLayoutId();
            (layoutId == ){
                NullPointerException();
            }
            convertView = LayoutInflater.().inflate(layoutId,parent,);
            AutoUtils.(convertView);
        }
        getView(position,convertView);
        convertView;
    }

    ()
    <View> (View convertView, id) {
        SparseArray<View> viewHolder = (SparseArray<View>) convertView.getTag();
        (viewHolder == ) {
            viewHolder = SparseArray<View>();
            convertView.setTag(viewHolder);
        }
        View childView = viewHolder.get(id);
        (childView == ) {
            childView = convertView.findViewById(id);
            viewHolder.put(id, childView);
        }
        () childView;
    }

}

繼承 該基類,實現兩個方法  

getLayoutId()返回 布局ID
getView(int position, View convertView) 里面操作你要寫的邏輯
在 getView(int position, View convertView) 方法里面可以使用 getItem(int position)得到實體模型數據

然后提供一些七七八八的便捷方法
findChildView()是省去寫ViewHolder的方法

附上使用例子
/**
 * Created by chenguozhen on 2017/3/30.
 *  eMail  1021632321@QQ.com
 */

public class MainAuthorAdapter extends IBaseAdapter<RecommentAuthor> {

    public MainAuthorAdapter(Context context, List<RecommentAuthor> mLists) {
        super(context, mLists);
    }

    @Nullable
    @Override
    public int getLayoutId(){
        return R.layout.list_column_item;
    }

    @Override
    public void getView(int position, View convertView) {

        RecommentAuthor recommentAuthor = getItem(position);

        ImageView head = findChildView(convertView, R.id.ivHeadForListColumn);
        TextView title = findChildView(convertView, R.id.tvTitleForListColumn);
        TextView content = findChildView(convertView, R.id.tvContextForListColumn);
        TextView time = findChildView(convertView, R.id.tvTimeForListColumn);
        TextView money = findChildView(convertView, R.id.tvMoneyForListColumn);

        GlideManager.loadImage(getContext(),
                recommentAuthor.getHead_img(),
                R.mipmap.default_head_ic,
                R.mipmap.default_head_ic,
                head);
        title.setText(recommentAuthor.getAuthor_name());
        content.setText(recommentAuthor.getColumn_name());
        time.setText(recommentAuthor.getCreate_date());
        money.setVisibility(View.GONE);

    }
}

大概就這樣了。下班收隊

向AI問一下細節

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

AI

滨海县| 泾川县| 东山县| 子洲县| 泰顺县| 都安| 宣武区| 增城市| 巴中市| 东兰县| 雅安市| 阳高县| 鹿泉市| 司法| 丰原市| 成武县| 石河子市| 平武县| 大同市| 申扎县| 云和县| 和平县| 耒阳市| 额敏县| 梅州市| 东乡| 若尔盖县| 洞头县| 简阳市| 台南市| 宣城市| 平塘县| 芮城县| 霍山县| 饶河县| 莱州市| 曲阜市| 太仆寺旗| 桓台县| 沧州市| 陕西省|