當前位置:
首頁 > 知識 > listview多種條目展示案例

listview多種條目展示案例

[java] view plain copy

  1. <code

    class

    ="language-java"><span> </span>

    public

    class

    myAdapter

    extends

    BaseAdapter {

  2. <span> </span>//<span> </span>獲得當前條目類型
  3. <span> </span>

    public

    int

    getItemViewType(

    int

    position) {
  4. <span> </span>// 如果是標題,返回0
  5. <span> </span>

    if

    (position == 0 || position == userAppList.size() + 1) {
  6. <span> </span>

    return

    0;
  7. <span> </span>}

    else

    {
  8. <span> </span>// 如果是應用條目,返回1
  9. <span> </span>

    return

    1;
  10. <span> </span>}
  11. <span> </span>}
  12. <span> </span>//獲得條目種類個數
  13. <span> </span>@Override
  14. <span> </span>

    public

    int

    getViewTypeCount() {
  15. <span> </span>

    return

    super

    .getViewTypeCount() + 1;
  16. <span> </span>}
  17. <span> </span>@Override
  18. <span> </span>//所有條目總數
  19. <span> </span>

    public

    int

    getCount() {
  20. <span> </span>

    return

    systemAppList.size() + userAppList.size() + 2;
  21. <span> </span>}
  22. <span> </span>/*
  23. <span> </span> * 返回當前條目
  24. <span> </span> */
  25. <span> </span>

    public

    AppInfo getItem(

    int

    position) {
  26. <span> </span>

    if

    (position == 0 || position == userAppList.size() + 1) {
  27. <span> </span>

    return

    null

    ;
  28. <span> </span>}

    else

    if

    (position < userAppList.size() + 1) {
  29. <span> </span>

    return

    userAppList.get(position - 1);
  30. <span> </span>}

    else

    {
  31. <span> </span>

    return

    systemAppList.get(position - 2 - userAppList.size());
  32. <span> </span>}
  33. <span> </span>}
  34. <span> </span>@Override
  35. <span> </span>

    public

    long

    getItemId(

    int

    position) {
  36. <span> </span>

    return

    position;
  37. <span> </span>}
  38. <span> </span>@Override
  39. <span> </span>

    public

    View getView(

    int

    position, View convertView, ViewGroup parent) {

  40. <span> </span>

    int

    type = getItemViewType(position);
  41. <span> </span>// 如果是純文本
  42. <span> </span>

    if

    (type == 0) {
  43. <span> </span>ViewTitleHolder vth =

    null

    ;
  44. <span> </span>
  45. <span> </span>

    if

    (convertView ==

    null

    ) {
  46. <span> </span>convertView = View.inflate(getApplicationContext(),
  47. <span> </span>R.layout.item_appinfo_title,

    null

    );
  48. <span> </span>
  49. <span> </span>vth =

    new

    ViewTitleHolder();
  50. <span> </span>vth.title = (TextView) convertView
  51. <span> </span>.findViewById(R.id.tv_appinfo_title);
  52. <span> </span>
  53. <span> </span>convertView.setTag(vth);
  54. <span> </span>
  55. <span> </span>}

    else

    {
  56. <span> </span>vth = (ViewTitleHolder) convertView.getTag();
  57. <span> </span>}
  58. <span> </span>

    if

    (position == 0) {
  59. <span> </span>vth.title.setText("用戶應用(" + userAppList.size() + ")");
  60. <span> </span>}

    else

    {

  61. <span> </span>vth.title.setText("系統應用(" + systemAppList.size() + ")");
  62. <span> </span>}
  63. <span> </span>

    return

    convertView;
  64. <span> </span>}

    else

    {
  65. <span> </span>// 如果是應用介紹
  66. <span> </span>ViewHolder vh =

    null

    ;
  67. <span> </span>
  68. <span> </span>

    if

    (convertView ==

    null

    ) {
  69. <span> </span>convertView = View.inflate(getApplicationContext(),
  70. <span> </span>R.layout.item_appinfo,

    null

    );
  71. <span> </span>vh =

    new

    ViewHolder();
  72. <span> </span>vh.icon = (ImageView) convertView
  73. <span> </span>.findViewById(R.id.iv_appIcon);
  74. <span> </span>vh.appName = (TextView) convertView
  75. <span> </span>.findViewById(R.id.tv_appName);
  76. <span> </span>vh.appIsSdcard = (TextView) convertView
  77. <span> </span>.findViewById(R.id.tv_appIsSdcard);
  78. <span> </span>convertView.setTag(vh);
  79. <span> </span>}

    else

    {
  80. <span> </span>vh = (ViewHolder) convertView.getTag();
  81. <span> </span>}
  82. <span> </span>
  83. <span> </span>AppInfo item = getItem(position);
  84. <span> </span>vh.icon.setImageDrawable(item.icon);
  85. <span> </span>vh.appName.setText(item.name);
  86. <span> </span>

    if

    (item.isSdcard) {
  87. <span> </span>vh.appIsSdcard.setText("內存儲卡");
  88. <span> </span>}

    else

    {
  89. <span> </span>vh.appIsSdcard.setText("SdCard應用");
  90. <span> </span>}
  91. <span> </span>

    return

    convertView;
  92. <span> </span>}
  93. <span> </span>}
  94. <span> </span>}</code>
  1. private ArrayList<AppInfo> systemAppList; //系統應用信息集合
  2. private ArrayList<AppInfo> userAppList; //用戶應用信息集合

listview多種條目展示案例

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

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


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

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

TAG:程序員小新人學習 |