自定義簡單的萬能介面卡

2021-12-29 22:40:28 字數 1580 閱讀 1019

介面卡在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 繫結...