亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

適配器的封裝

標簽:
Android

[代码]java代码:

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

public abstract class AbsBaseAdapter<t>   extends BaseAdapter   {

 

    private final int resId;

    private List<t> list;

    private Context context;

    private ViewHolder viewHolder;

 

    public AbsBaseAdapter(Context context,int resId) {

        this.context   = context;

        list   = new ArrayList<t>();

        this.resId   = resId;

    }

    public void setData(List<t deep="10"> list){

        this.list   = list;

        notifyDataSetChanged();

    }

    public void addData(T data){

        if(!list.contains(data)){

            list.add(data);

            notifyDataSetChanged();

        }

    }

    public void clearData(){

        list.clear();

        notifyDataSetChanged();

    }

    public void remove(int poaition){

        list.remove(poaition);

        notifyDataSetChanged();

    }

    @Override

    public int getCount() {

        return  list.size();

    }

     

    @Override

    public Object getItem(int i) {

        return list.get(i);

    }

 

    @Override

    public long getItemId(int i) {

        return i;

    }

 

    @Override

      public View getView(int i, View convertView, ViewGroup viewGroup)   {

        View   view;

        if(   convertView== null){

            view   = LayoutInflater.from(context).inflate(resId,viewGroup,false);

            viewHolder   = new ViewHolder(view);

            view.setTag(viewHolder);

 

        }else{

            view   = convertView;

            viewHolder   = (ViewHolder) view.getTag();

        }

        bindData(list.get(i),viewHolder);

        return view;

    }

    public abstract void bindData(T   data,ViewHolder viewHolder);

     

    class ViewHolder{

        View   layoutView;

        Map<integer,view>   map = new HashMap<integer,view>();

 

        public ViewHolder(View layoutView) {

            this.layoutView   = layoutView;

        }

        public View getView(int id){

            View   view;

            if(map.containsKey(id)){

                view   = map.get(id);

            }else{

                view   = layoutView.findViewById(id);

                map.put(id,view);

            }

            return view;

        }

    }</integer,view></integer,view></t></t></t></t>

原文链接:http://www.apkbus.com/blog-807598-61343.html

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消