介面卡在android中非常的常用,像listview,gridview,下拉框。。。中都比較常用,
這篇部落格介紹乙個萬能的介面卡,雖然比較簡單,但是用處比較大。(不用乙個個再去建立介面卡了)
此列子建立的是乙個虛類,使用的時候需要繼承此類,並實現相應的方法。
public abstract class ******baseadapter extends baseadapter
@override
public int getcount()
@override
public object getitem(int position)
return data.get(position);
}@override
public long getitemid(int position)
//繼承類所需要實現的方法,獲取列表項的布局id
public abstract int getitemrsouce();
//繼承類所需要實現的方法,獲取列表項的view
public abstract view getitemview(int position,view convertview,viewholder holder);
//介面卡中最重要的方法,之所以返回view呼叫getitemview()這個方法
//是因為返回的view中的子view需要根據實現類中view的id確認
@suppresswarnings("unchecked")
@override
public view getview(int position, view convertview, viewgroup parent)
else
return getitemview(position, convertview, holder);
}//一種新的viewholder的寫法,之所以這麼寫,是為了方便
//實現類獲取convertview中的子view ,holderview的快取機制
//使用sparsearray進行快取
public class viewholder
@suppresswarnings("unchecked")
public t getview(int resid)
return (t) v;}}
}******baseadapter其實就是對介面卡的一種抽象,並且這個抽象類的不同表現用抽象方法
實現,因為實現類必須要實現抽象方法(也可以說實現類是根據抽象方法表現出不同的屬性)
******baseadapter的實現類:
public class myadapter extends ******baseadapter
@override
public int getitemrsouce()
//根據id獲取view(每個實現類的id都不一樣)
@override
public view getitemview(final int position, view convertview, viewholder holder)
});return convertview;}}
萬能介面卡
因為每次使用listview和baseadapter,都要重複的寫很多 所以我寫了乙個萬能的viewholder,而不要每次都要寫乙個holder,public class viewholder 通過viewid獲取到控制項 param viewid param return public t ge...
萬能介面卡
首先次之 最後public class baseviewholder extends recyclerview.viewholder 獲取viewholder下的乙個控制項方法 id 控制項id private view getview int id return view textview屬性設定...
萬能介面卡實現 RecyclerView 的多布局
既然是萬能介面卡,那麼無論什麼介面卡,我們寫介面卡就因該有乙個固定的思想,具體實現是絕對不能寫在介面卡裡的,如果實現寫在了介面卡裡,那麼介面卡就不是萬能介面卡了 1.介面卡 public abstract class myadapter extends recyclerview.adapter 繫結...