android分組
Ⅰ android listview 鍒嗙粍鐨勬椂鍊 ViewHolder緙撳瓨鎬庝箞鍋氬憿錛
鎰忔濇槸濡傛灉鏈夊氱嶢tem甯冨矓鐨勬椂鍊欐庝箞鍋氱紦瀛樻槸鍚э紵
鎴戣繖閲屾湁涓渚嬪瓙錛屾槸涓ょ嶅竷灞鐨勶細
getItemViewType鍖哄垎涓涓嬶紝鍏跺疄鎴戣繖閲屽彧鏈夌涓涓鏄痶itle
Ⅱ android許可權管理
從 Android 6.0 開始,按照是否需要動態申請分為 普通許可權 和 特殊許可權
特殊許可權 需要程序運行時申請並通過之後才能使用,或者程序安裝為系統應用或系統簽名。
注意:
1、動態申請也需要在清單文件中配置(AndroidMenifest.xml)
2、許可權是分組的,同一組的許可權申請其中一個,同組的許可權就全部都申請了
特殊許可權共有 9 組:
9 組具體許可權列表:
普通許可權在清單文件配置(AndroidMenifest.xml)即可使用
(1)在 AndroidMenifest.xml 清單文件中申請
(2)單個申請
(2)批量申請
(3)回調處理
Ⅲ android listview樣式設置,加分組
1. 萬能適配器 具體可以參考http://www.imooc.com/learn/372
1). ViewHolder: 傳統的寫法我們一般是會把ViewHolder寫在Adapter裡面,這里把ViewHolder提取出來作為一個公共的類使扒漏用這樣不用每個Adpater都去寫一遍ViewHolder了,所以對於每個ViewHolder類我們要知道的對象有
private SparseArray<View> mViews = null;
private Context mContext = null;
private View mConvertView = null;
private int mPosition = -1;12341234
mViews 用來保存我們每個item布局裡面的view對應的key是view的id,mContext 用來保存上下午,mConverView保存對應item的ConvertView,mPosition用來保存item對應的位置。
2). MobileBaseAdapter: 也做了稍微的優化,因為我們在寫Adapter裡面getView的時候很多動作都是重復的,所以對應重復的動作全部都單獨提取出來提前寫好了,在使用MobileBaseAdapter的時候只要實現public abstract void convert(ViewHolder viewHolder, T t); 就好了具體可以看下燃櫻代碼中的做法。用起來是非常簡單的。
2. 具體分組的實現
我們先要知道BaseAdapter裡面的getItemViewType()函數和getViewTypeCount()函數的作用。getViewTypeCount表示ListView 每個item會緩存幾個復用對象,getItemViewType則是根據position判斷這個這個item對應用哪個緩存的對象,換句話說比如getViewTypeCount返回的值是3,那麼每個item可能就會有0,1,2三個緩存復用的對象,這個時候getItemViewType返回的是0,這樣就會用0這個對象去復用。
這樣我們在來看下MobileCategoryAdapter裡面的代碼。
1). 內部類Category 這個沒什麼東西包含一個BaseAdapter對象和一些必要的方法, 因為我們在MobileCategoryAdatper裡面肯定是會有List對象的。
2). 內部類CategoryListClickListener 實現了ListView的OnItemClickListener。因為我們要ListView.setOnClickListener這個類的對象。
在這個類中我們會區分當前點擊的皮此叢是title(點擊的時候我們可能會展開和收縮該分組)還是item。然後把title(onTitleClick)和item(onItemClick)的點擊的實現都暴露出去。
3). getViewTypeCount() 1+每個Category中Adpater的ViewType。加1可以想像是每個Category都有一個標題。看代碼運行的效果圖應該能看出來,我們上面的效果圖相當於有3個ViewType。
4). getItemViewType() 根據每個position去獲取ViewType。