亚洲精品亚洲人成在线观看麻豆,在线欧美视频一区,亚洲国产精品一区二区动图,色综合久久丁香婷婷

              當(dāng)前位置:首頁 > IT技術(shù) > 移動平臺 > 正文

              【Android】Android適配器之ArrayAdapter、SimpleAdapter和BaseAdapter的簡單用法
              2021-09-08 11:44:32

              ?



              ArrayAdapter、SimpleAdapter和BaseAdapter的一些簡短代碼片段,希望用時方便想起其用法。

              1.ArrayAdapter

              ?

              只可以簡單的顯示一行文本

              代碼片段:

              ?

              ?
              1. ArrayAdapter<String>?adapter?=?new?ArrayAdapter<String>(??
              2. ????????????????this,??
              3. ????????????????R.layout.item,//只能有一個定義了id的TextView??
              4. ????????????????data);//data既可以是數(shù)組,也可以是List集合??


              ?

              2.SimpleAdapter

              ?

              可以顯示比較復(fù)雜的列表,包括每行顯示圖片、文字等,但不能對列表進(jìn)行后期加工(在java代碼中加工),
              也是只是單純的負(fù)責(zé)顯示(當(dāng)然可以設(shè)計復(fù)雜點的布局來顯示復(fù)雜列表),例如,每行顯示不同背景等。

              代碼片段:

              ?

              ?
              1. List<Map<String,Object>>?mData=?new?ArrayList<Map<String,Object>>();;??
              2. for(int?i?=0;?i?<?lengh;?i++)?{??????
              3. ????Map<String,Object>?item?=?new?HashMap<String,Object>();??????
              4. ????item.put("image",?R.drawable.portrait);??????
              5. ????item.put("title",?mListTitle[i]);??????
              6. ????item.put("text",?mListStr[i]);??????
              7. ????mData.add(item);???????
              8. }??????
              9. SimpleAdapter?adapter?=?new?SimpleAdapter(??
              10. ????????????????this,??
              11. ????????????????mData,??
              12. ????????????????R.layout.item,??????
              13. ????????????????new?String[]{"image","title","text"},??
              14. ????????????????new?int[]{R.id.image,R.id.title,R.id.text});?????

              ?

              ?

              3.BaseAdapter

              ?

              可以實現(xiàn)復(fù)雜的列表布局,由于BaseAdapter是一個抽象類,使用該類需要自己寫一個適配器繼承該類,
              正是由于繼承了該類,需要我們重寫一些方法,讓我們可以在代碼里控制列表的樣式,更加靈活。

              代碼片段:

              ?

              ?
              1. private?class?MyListAdapter?extends?BaseAdapter{????
              2. ????????private?Context?mContext;????
              3. ????????private?int[]?colors=new?int[]{0xff626569,0xff4f5257?};????
              4. ?????????public?MyListAdapter(Context?context){????
              5. ?????????????mContext=context;????
              6. ?????????}????
              7. ????????@Override????
              8. ????????public?int?getCount()?{????
              9. ????????????//?TODO?Auto-generated?method?stub????
              10. ????????????return?mListText.length;????
              11. ????????}????
              12. ????
              13. ????????@Override????
              14. ????????public?Object?getItem(int?position)?{????
              15. ????????????//?TODO?Auto-generated?method?stub????
              16. ????????????return?position;????
              17. ????????}????
              18. ????
              19. ????????@Override????
              20. ????????public?long?getItemId(int?position)?{????
              21. ????????????//?TODO?Auto-generated?method?stub????
              22. ????????????return?position;????
              23. ????????}????
              24. ????
              25. ????????@Override????
              26. ????????public?View?getView(int?position,?View?convertView,?ViewGroup?parent)?{????
              27. ????????????ImageView?image=null;??//這些控件可以單獨封裝成一個類(Holder),便與優(yōu)化??
              28. ????????????TextView?title=null;????
              29. ????????????TextView??content=null;????
              30. ????????????if(convertView==null){????
              31. ????????????????convertView=LayoutInflater.from(mContext).inflate(R.layout.colorlist,?null);????
              32. ????????????????image=(ImageView)?convertView.findViewById(R.id.color_image);????
              33. ????????????????title=(TextView)?convertView.findViewById(R.id.color_title);????
              34. ????????????????content=(TextView)?convertView.findViewById(R.id.color_text);????
              35. ????????????}???
              36. ????????????int?colorPos=position%colors.length;????
              37. ????????????convertView.setBackgroundColor(colors[colorPos]);????
              38. ????????????title.setText(mListTitle[position]);????
              39. ????????????content.setText(mListText[position]);????
              40. ????????????image.setImageResource(R.drawable.portrait);????
              41. ????????????????
              42. ????????????return?convertView;????
              43. ????????}????
              44. ????????????
              45. ????}????
              46. ??
              47. --------------------------下面樣例列表頁的控件單獨封裝成了一個類(Holder),便與優(yōu)化-----??
              48. ??
              49. ??
              50. ?public?class?MyBaseAdapter?extends?BaseAdapter{??
              51. ???????
              52. ???????????private?LayoutInflater?mInflater;??
              53. ????????????public?MyAdapter(Context?context){??
              54. ???????????????this.mInflater?=?LayoutInflater.from(context);??
              55. ??????????}??
              56. ????????????@Override??
              57. ???????????public?int?getCount()?{??
              58. ????????????????//?TODO?Auto-generated?method?stub??
              59. ????????????????return?mData.size();??
              60. ????????????}??
              61. ???????
              62. ????????????@Override??
              63. ????????????public?Object?getItem(int?arg0)?{??
              64. ????????????????//?TODO?Auto-generated?method?stub??
              65. ????????????????return?null;??
              66. ???????????}??
              67. ???????
              68. ????????????@Override??
              69. ????????????public?long?getItemId(int?arg0)?{??
              70. ????????????????//?TODO?Auto-generated?method?stub??
              71. ????????????????return?0;??
              72. ????????????}??
              73. ???????
              74. ????????????@Override??
              75. ????????????public?View?getView(int?position,?View?convertView,?ViewGroup?parent)?{??
              76. ???????????????????
              77. ????????????????ViewHolder?holder?=?null;??
              78. ????????????????if?(convertView?==?null)?{??
              79. ????????????????????holder=new?ViewHolder();???
              80. ????????????????????convertView?=?mInflater.inflate(R.layout.vlist2,?null);??
              81. ????????????????????holder.img?=?(ImageView)convertView.findViewById(R.id.img);??
              82. ????????????????????holder.title?=?(TextView)convertView.findViewById(R.id.title);??
              83. ????????????????????holder.info?=?(TextView)convertView.findViewById(R.id.info);??
              84. ????????????????????holder.viewBtn?=?(Button)convertView.findViewById(R.id.view_btn);??
              85. ????????????????????convertView.setTag(holder);??
              86. ???????????????????????
              87. ????????????????}else?{???????????????????????
              88. ????????????????????holder?=?(ViewHolder)convertView.getTag();??
              89. ????????????????}??
              90. ????????????????holder.img.setBackgroundResource((Integer)mData.get(position).get("img"));??
              91. ????????????????holder.title.setText((String)mData.get(position).get("title"));??
              92. ????????????????holder.info.setText((String)mData.get(position).get("info"));??
              93. ????????????????//給每一個列表后面的按鈕添加響應(yīng)事件??
              94. ????????????????holder.viewBtn.setOnClickListener(new?View.OnClickListener()?{??
              95. ????????????????????@Override??
              96. ????????????????????public?void?onClick(View?v)?{??
              97. ????????????????????????showInfo();??????????????????
              98. ????????????????????}??
              99. ????????????????});??
              100. ??
              101. ????????????????return?convertView;??
              102. ????????????}??
              103. ????????------------??
              104. ????????public?final?class?ViewHolder{??
              105. ????????????public?ImageView?img;??
              106. ????????????public?TextView?title;??
              107. ????????????public?TextView?info;??
              108. ????????????public?Button?viewBtn;??
              109. ????????}??


              ?

              ?

              ?

              原文來源:javascript:void(0)

              1.ArrayAdapter

              ?

              只可以簡單的顯示一行文本

              代碼片段:

              ?

              ?
              1. ArrayAdapter<String>?adapter?=?new?ArrayAdapter<String>(??
              2. ????????????????this,??
              3. ????????????????R.layout.item,//只能有一個定義了id的TextView??
              4. ????????????????data);//data既可以是數(shù)組,也可以是List集合??



              ?

              2.SimpleAdapter

              ?

              可以顯示比較復(fù)雜的列表,包括每行顯示圖片、文字等,但不能對列表進(jìn)行后期加工(在java代碼中加工),
              也是只是單純的負(fù)責(zé)顯示(當(dāng)然可以設(shè)計復(fù)雜點的布局來顯示復(fù)雜列表),例如,每行顯示不同背景等。

              代碼片段:

              ?

              ?
              1. List<Map<String,Object>>?mData=?new?ArrayList<Map<String,Object>>();;??
              2. for(int?i?=0;?i?<?lengh;?i++)?{??????
              3. ????Map<String,Object>?item?=?new?HashMap<String,Object>();??????
              4. ????item.put("image",?R.drawable.portrait);??????
              5. ????item.put("title",?mListTitle[i]);??????
              6. ????item.put("text",?mListStr[i]);??????
              7. ????mData.add(item);???????
              8. }??????
              9. SimpleAdapter?adapter?=?new?SimpleAdapter(??
              10. ????????????????this,??
              11. ????????????????mData,??
              12. ????????????????R.layout.item,??????
              13. ????????????????new?String[]{"image","title","text"},??
              14. ????????????????new?int[]{R.id.image,R.id.title,R.id.text});?????

              ?

              ?

              3.BaseAdapter

              ?

              可以實現(xiàn)復(fù)雜的列表布局,由于BaseAdapter是一個抽象類,使用該類需要自己寫一個適配器繼承該類,
              正是由于繼承了該類,需要我們重寫一些方法,讓我們可以在代碼里控制列表的樣式,更加靈活。

              代碼片段:

              ?

              ?
              1. private?class?MyListAdapter?extends?BaseAdapter{????
              2. ????????private?Context?mContext;????
              3. ????????private?int[]?colors=new?int[]{0xff626569,0xff4f5257?};????
              4. ?????????public?MyListAdapter(Context?context){????
              5. ?????????????mContext=context;????
              6. ?????????}????
              7. ????????@Override????
              8. ????????public?int?getCount()?{????
              9. ????????????//?TODO?Auto-generated?method?stub????
              10. ????????????return?mListText.length;????
              11. ????????}????
              12. ????
              13. ????????@Override????
              14. ????????public?Object?getItem(int?position)?{????
              15. ????????????//?TODO?Auto-generated?method?stub????
              16. ????????????return?position;????
              17. ????????}????
              18. ????
              19. ????????@Override????
              20. ????????public?long?getItemId(int?position)?{????
              21. ????????????//?TODO?Auto-generated?method?stub????
              22. ????????????return?position;????
              23. ????????}????
              24. ????
              25. ????????@Override????
              26. ????????public?View?getView(int?position,?View?convertView,?ViewGroup?parent)?{????
              27. ????????????ImageView?image=null;??//這些控件可以單獨封裝成一個類(Holder),便與優(yōu)化??
              28. ????????????TextView?title=null;????
              29. ????????????TextView??content=null;????
              30. ????????????if(convertView==null){????
              31. ????????????????convertView=LayoutInflater.from(mContext).inflate(R.layout.colorlist,?null);????
              32. ????????????????image=(ImageView)?convertView.findViewById(R.id.color_image);????
              33. ????????????????title=(TextView)?convertView.findViewById(R.id.color_title);????
              34. ????????????????content=(TextView)?convertView.findViewById(R.id.color_text);????
              35. ????????????}???
              36. ????????????int?colorPos=position%colors.length;????
              37. ????????????convertView.setBackgroundColor(colors[colorPos]);????
              38. ????????????title.setText(mListTitle[position]);????
              39. ????????????content.setText(mListText[position]);????
              40. ????????????image.setImageResource(R.drawable.portrait);????
              41. ????????????????
              42. ????????????return?convertView;????
              43. ????????}????
              44. ????????????
              45. ????}????
              46. ??
              47. --------------------------下面樣例列表頁的控件單獨封裝成了一個類(Holder),便與優(yōu)化-----??
              48. ??
              49. ??
              50. ?public?class?MyBaseAdapter?extends?BaseAdapter{??
              51. ???????
              52. ???????????private?LayoutInflater?mInflater;??
              53. ????????????public?MyAdapter(Context?context){??
              54. ???????????????this.mInflater?=?LayoutInflater.from(context);??
              55. ??????????}??
              56. ????????????@Override??
              57. ???????????public?int?getCount()?{??
              58. ????????????????//?TODO?Auto-generated?method?stub??
              59. ????????????????return?mData.size();??
              60. ????????????}??
              61. ???????
              62. ????????????@Override??
              63. ????????????public?Object?getItem(int?arg0)?{??
              64. ????????????????//?TODO?Auto-generated?method?stub??
              65. ????????????????return?null;??
              66. ???????????}??
              67. ???????
              68. ????????????@Override??
              69. ????????????public?long?getItemId(int?arg0)?{??
              70. ????????????????//?TODO?Auto-generated?method?stub??
              71. ????????????????return?0;??
              72. ????????????}??
              73. ???????
              74. ????????????@Override??
              75. ????????????public?View?getView(int?position,?View?convertView,?ViewGroup?parent)?{??
              76. ???????????????????
              77. ????????????????ViewHolder?holder?=?null;??
              78. ????????????????if?(convertView?==?null)?{??
              79. ????????????????????holder=new?ViewHolder();???
              80. ????????????????????convertView?=?mInflater.inflate(R.layout.vlist2,?null);??
              81. ????????????????????holder.img?=?(ImageView)convertView.findViewById(R.id.img);??
              82. ????????????????????holder.title?=?(TextView)convertView.findViewById(R.id.title);??
              83. ????????????????????holder.info?=?(TextView)convertView.findViewById(R.id.info);??
              84. ????????????????????holder.viewBtn?=?(Button)convertView.findViewById(R.id.view_btn);??
              85. ????????????????????convertView.setTag(holder);??
              86. ???????????????????????
              87. ????????????????}else?{???????????????????????
              88. ????????????????????holder?=?(ViewHolder)convertView.getTag();??
              89. ????????????????}??
              90. ????????????????holder.img.setBackgroundResource((Integer)mData.get(position).get("img"));??
              91. ????????????????holder.title.setText((String)mData.get(position).get("title"));??
              92. ????????????????holder.info.setText((String)mData.get(position).get("info"));??
              93. ????????????????//給每一個列表后面的按鈕添加響應(yīng)事件??
              94. ????????????????holder.viewBtn.setOnClickListener(new?View.OnClickListener()?{??
              95. ????????????????????@Override??
              96. ????????????????????public?void?onClick(View?v)?{??
              97. ????????????????????????showInfo();??????????????????
              98. ????????????????????}??
              99. ????????????????});??
              100. ??
              101. ????????????????return?convertView;??
              102. ????????????}??
              103. ????????------------??
              104. ????????public?final?class?ViewHolder{??
              105. ????????????public?ImageView?img;??
              106. ????????????public?TextView?title;??
              107. ????????????public?TextView?info;??
              108. ????????????public?Button?viewBtn;??
              109. ????????}??



              ?

              ?

              ?

              本文摘自 :https://blog.51cto.com/u

              開通會員,享受整站包年服務(wù)立即開通 >