-
ListView的顯示與緩存機制 需要才顯示,顯示完就被回收到緩存。查看全部
-
數據適配器--BaseAdapter查看全部
-
貌似這個viewholder的名字不是自己亂命的,要用的時候可以查查查看全部
-
getView的文藝式: getView函數中有兩個耗時的地方,其一是生成整個view的操作,在普通式之中,通過使用第二個參數利用了緩存池中的view,從而加快了速度。 另一個耗時是定義item對應的view中的幾個子控件所要進行的findviewbyid函數的使用,這里程序用一個小類封裝了item中的幾個子控件所對應的變量,并用settag函數在第一次運行的時候將其保存在view中,那么在后續使用的時候如果view已經建立,就可以進一步節省時間查看全部
-
適配器普通式: 其傳進來的第二個參數得到了使用,第二個參數是convertview,如果這個view沒有被初始化過(不在緩沖池當中),那么就如同前面的逗逼式的使用一樣,用inflator新建立一個,因為新建立一個非常耗時,所以當緩沖池當中有了這個view之后,就可以直接返回了查看全部
-
最后在主程序中的使用: 這個listview也需要初始化并設置控制變量,然后設置一個適配器,適配器用前面幾節定義并重寫了函數的子Adapter類,同時給子類的構造函數傳入參數,第一個參數this表明item的子控件子界面都在這個主界面上產生,第二個參數即是adapter返回給listview的數據從何而來(主程序前面for循環定義)。 這樣就建立起了橋梁。 補充一點,這樣是逗逼式,因為最后的getview函數的實現上面沒有使用安卓系統提供的緩存機制,是一種浪費查看全部
-
最主要的getView方法,此方法并非程序調用,是系統自動調用,即系統需要生成一個新的item的時候使用的。 首先定義一個子view,使用inflater對象的inflat函數將一個xml文件轉成view對象(第二個參數一般為null) 然后如主程序中的一樣,定義各個子控件的控制變量,只不過是view的子控件 最后子控件的控制變量用構造函數傳進來的數據源(封裝了item的幾個部件所需參數的類的list)來更新界面,就如主程序中的mTextView.setText()一樣。 position是函數傳進來的參數,用來表示位置(第幾個item),安卓自動調用,只需使用即可查看全部
-
自定義的Adapter文件的初始化,需要用inflator,這里在構造函數里面將inflator定義為在主view里面使用的,一般的context對象使用this即可查看全部
-
然后就是實現自己定義的適配器,baseAdapter是一個抽象基類,前面的幾個方法都沒有實現,同時需要我們自己定義數據類型和構造函數,然后實現這4個方法查看全部
-
然后定義一個類,類中保存item的數據類型的結構,比如有一個int(圖片id)兩個string,定義構造方法等,然后在主函數中就可以定義一個這個類的list查看全部
-
BaseAdapter的使用,其四個函數。適配器的作用是將一定的數據顯示在一些控件如listview和gridview上。每個item包含自己的xml布局文件需要自己定義查看全部
-
數據適配器查看全部
-
baseAdapter查看全部
-
baseAdapter 文藝式查看全部
-
Adapter繼承自BaseAdapter 中的將XML轉換為View對象: LayoutInflater mInflater; mInflater=LayoutInflatet.from(context) 在getView中通過 View view=(View)mInflater.inflate(R.layout.xxx,null)加載Item布局轉換為View對象 通過View對象訪問到Item布局中的控件 ImageView image=(ImageView)view.findViewById(R.id.xxx) 然后通過 image.setImageResource(mlist.getItem(position).XXXid)設置圖片 數據源綁定到ListView上: listView.setAdapter(new MyAdapter(this,datalist數據源))查看全部
舉報
0/150
提交
取消