Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android基礎入門教程——2.4.8 ListView Item多布局的實現

Android基礎入門教程——2.4.8 ListView Item多布局的實現

編輯:關於Android編程

Android基礎入門教程——2.4.8 ListView Item多布局的實現

標簽(空格分隔): Android基礎入門教程


本節引言:

本節是ListView這個小節的最後一節,給大家帶來的是ListView多布局Item的實現,
何為ListView Item多布局,打個比方,QQ這種聊天列表:
title=
假如他是用一個ListView做的,那麼一個ListView上不就有兩種不同的Item咯!
一左一右,嘿嘿,本節就來教大家如何實現ListView的多布局!


1.要點講解:

重寫getItemViewType()方法對應View是哪個類別,以及getViewTypeCount()方法iew返回
總共多少個類別!然後再getView那裡調用getItemViewType獲得對應類別,再加載對應的View!


2.代碼實現:

這裡的話直接用上一節的兩個布局,然後另外寫一個Adapter重寫要點中的幾個幾個地方:


MutiLayoutAdapter.java

/**
 * Created by Jay on 2015/9/23 0023.
 */
public class MutiLayoutAdapter extends BaseAdapter{

    //定義兩個類別標志
    private static final int TYPE_BOOK = 0;
    private static final int TYPE_APP = 1;
    private Context mContext;
    private ArrayList

這裡有個地方要注意的,convertView.setTag(R.id.Tag_APP,holder1);我們平時都直接
setTag(Object)的,這個是setTag的重載方法,參數是一個唯一的key以及後面的一個對象!
唯一!!!我一開始直接把TYPE_BOOK作為第一個參數,然後就報下面這個錯誤:

title=

The key must be an application-specific resource id
就是前面這個要唯一,定義一個final類型的int變量和硬編碼一個值的方式都是行不通的
這裡的做法是直接在strings.xml中添加:

    
    

當然你也可以在res/values/下另外創建一個ids.xml文件,把上面這段代碼貼上去!
除了這個還有一個要注意的地方,就是這個區分類別的標志要從0開始算,不然會報下面
這樣的錯誤:

title=


MainActivity.java

public class MainActivity extends AppCompatActivity {

    private static final int TYPE_BOOK = 0;
    private static final int TYPE_APP = 1;
    private ListView list_content;
    private ArrayList

上面隨機生成0和1,0就往集合中添加一個Book的對象,1的話就添加一個App的對象!


 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved