Android 中自定义 Adapter

悠悠 2022-08-26 13:28 343阅读 0赞
  1. public classMyListViewAdapter extends BaseAdapter {
  2. private Context mContext= null;
  3. private LayoutInflater mLayoutInflater= null;
  4. private List<Map<String, Object>> mList= null;
  5. //构造方法,参数list传递的就是这一组数据的信息
  6. public MyListViewAdapter(Context context, List<Map<String, Object>> list) {
  7. this.mList= list;
  8. this.mContext= context;
  9. this.mLayoutInflater= LayoutInflater.from(mContext);
  10. }
  11. //得到总的数量
  12. @Override
  13. public int getCount() {
  14. // TODOAuto-generated method stub
  15. return this.mList!= null? this.mList.size() : 0;
  16. }
  17. //根据位置得到View对象
  18. @Override
  19. public Object getItem(intposition) {
  20. // TODOAuto-generated method stub
  21. return this.mList.get(position);
  22. }
  23. //根据ListView位置得到List中的ID
  24. @Override
  25. public long getItemId(intposition) {
  26. // TODOAuto-generated method stub
  27. returnposition;
  28. }
  29. //根据位置得到View对象
  30. @Override
  31. public View getView(intposition, View convertView, ViewGroup parent) {
  32. // TODOAuto-generated method stub
  33. //得到条目中的子组件
  34. ViewHolder holder = null;
  35. if(convertView == null) {
  36. holder = newViewHolder();
  37. convertView = mLayoutInflater.inflate(R.layout.activity_main_item, null);
  38. holder.imageHead= (ImageView) convertView.findViewById(R.id.imageHead);
  39. holder.name= (TextView) convertView.findViewById(R.id.name);
  40. holder.time= (TextView) convertView.findViewById(R.id.time);
  41. holder.content= (TextView) convertView.findViewById(R.id.content);
  42. holder.imageContent= (ImageView) convertView.findViewById(R.id.imageContent);
  43. holder.transmit= (TextView) convertView.findViewById(R.id.transmit);
  44. holder.comment= (TextView) convertView.findViewById(R.id.comment);
  45. convertView.setTag(holder);
  46. } else{
  47. holder = (ViewHolder) convertView.getTag();
  48. }
  49. //对ListView的Item中的控件的操作
  50. holder.imageHead.setImageResource((Integer) mList.get(position).get("imageHead"));
  51. holder.name.setText(mList.get(position).get("name").toString());
  52. holder.time.setText(mList.get(position).get("time").toString());
  53. holder.content.setText(mList.get(position).get("content").toString());
  54. holder.imageContent.setImageResource((Integer) mList.get(position).get("imageContent"));
  55. holder.transmit.setText(mList.get(position).get("transmit").toString());
  56. holder.comment.setText(mList.get(position).get("comment").toString());
  57. return convertView;
  58. }
  59. // 定义一个内部类来管理条目中的子组件​
  60. public final classViewHolder {
  61. public ImageView imageHead= null;
  62. public ImageView imageContent= null;
  63. public TextView time= null;
  64. public TextView name= null;
  65. public TextView content= null;
  66. public TextView comment= null;
  67. public TextView transmit= null;
  68. }
  69. }

发表评论

表情:
评论列表 (有 0 条评论,343人围观)

还没有评论,来说两句吧...

相关阅读

    相关 定义Adapter

    在进行安卓开发的时候使用arrayadapter和simpleadapter显示数据的方式比较固定,如果我们想对listview进行更加丰富的展示,那么我们就要使用自定义ada