酷播亮新聞
最棒的知識補給站

listview多種條目展示案例

[java] view plain copy

  1. class

    ="language-java">

    public

    class

    myAdapter

    extends

    BaseAdapter {

  2. // 獲得當前條目類型
  3. public

    int

    getItemViewType(

    int

    position) {

  4. // 如果是標題,返回0
  5. if

    (position == 0 || position == userAppList.size() + 1) {

  6. return

    0;

  7. }

    else

    {

  8. // 如果是應用條目,返回1
  9. return

    1;

  10. }
  11. }
  12. //獲得條目種類個數
  13. @Override
  14. public

    int

    getViewTypeCount() {

  15. return

    super

    .getViewTypeCount() + 1;

  16. }
  17. @Override
  18. //所有條目總數
  19. public

    int

    getCount() {

  20. return

    systemAppList.size() + userAppList.size() + 2;

  21. }
  22. /*
  23. * 返回當前條目
  24. */
  25. public

    AppInfo getItem(

    int

    position) {

  26. if

    (position == 0 || position == userAppList.size() + 1) {

  27. return

    null

    ;

  28. }

    else

    if

    (position < userAppList.size() + 1) {

  29. return

    userAppList.get(position - 1);

  30. }

    else

    {

  31. return

    systemAppList.get(position - 2 - userAppList.size());

  32. }
  33. }
  34. @Override
  35. public

    long

    getItemId(

    int

    position) {

  36. return

    position;

  37. }
  38. @Override
  39. public

    View getView(

    int

    position, View convertView, ViewGroup parent) {

  40. int

    type = getItemViewType(position);

  41. // 如果是純文本
  42. if

    (type == 0) {

  43. ViewTitleHolder vth =

    null

    ;

  44. if

    (convertView ==

    null

    ) {

  45. convertView = View.inflate(getApplicationContext(),
  46. R.layout.item_appinfo_title,

    null

    );

  47. vth =

    new

    ViewTitleHolder();

  48. vth.title = (TextView) convertView
  49. .findViewById(R.id.tv_appinfo_title);
  50. convertView.setTag(vth);
  51. }

    else

    {

  52. vth = (ViewTitleHolder) convertView.getTag();
  53. }
  54. if

    (position == 0) {

  55. vth.title.setText("用戶應用(" + userAppList.size() + ")");
  56. }

    else

    {

  57. vth.title.setText("系統應用(" + systemAppList.size() + ")");
  58. }
  59. return

    convertView;

  60. }

    else

    {

  61. // 如果是應用介紹
  62. ViewHolder vh =

    null

    ;

  63. if

    (convertView ==

    null

    ) {

  64. convertView = View.inflate(getApplicationContext(),
  65. R.layout.item_appinfo,

    null

    );

  66. vh =

    new

    ViewHolder();

  67. vh.icon = (ImageView) convertView
  68. .findViewById(R.id.iv_appIcon);
  69. vh.appName = (TextView) convertView
  70. .findViewById(R.id.tv_appName);
  71. vh.appIsSdcard = (TextView) convertView
  72. .findViewById(R.id.tv_appIsSdcard);
  73. convertView.setTag(vh);
  74. }

    else

    {

  75. vh = (ViewHolder) convertView.getTag();
  76. }
  77. AppInfo item = getItem(position);
  78. vh.icon.setImageDrawable(item.icon);
  79. vh.appName.setText(item.name);
  80. if

    (item.isSdcard) {

  81. vh.appIsSdcard.setText("內存儲卡");
  82. }

    else

    {

  83. vh.appIsSdcard.setText("SdCard應用");
  84. }
  85. return

    convertView;

  86. }
  87. }
  88. }
  1. private ArrayList systemAppList; //系統應用信息集合
  2. private ArrayList userAppList; //用戶應用信息集合

listview多種條目展示案例

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

JSP和Servlet初級知識點總結
springboot websocket後台主動推送消息

TAG:程序員小新人學習 |

如有侵權請來信告知:酷播亮新聞 » listview多種條目展示案例