設計模式-adapter設計模式

效果圖

adapter.gif

1.定義

將一種對象適配成另一種對象

2.示例

   MyListView myListView = (MyListView) findViewById(R.id.myListView);
        //1.模擬服務器傳回數(shù)據(jù)
        List<String> mDatas = new ArrayList<>();
        for (int i = 0; i < 100; i++) {
            mDatas.add(i+"");
        }
        //2.將數(shù)據(jù)轉化為視圖View
        MyAdapter adapter = new MyAdapter(mDatas,this);
        //3.將View顯示在屏幕上
        myListView.setAdapter(adapter);
/**
 * 項目名稱:MyApplication
 * 類描述:轉化的接口(通過該適配器將數(shù)據(jù)集合轉化為MyListView需要的View)
 * 創(chuàng)建人:woochen123
 * 創(chuàng)建時間:2017/11/14 21:35
 */
public interface BaseAdapter {
     int getCount();
     View getView(int position);
}
/**
 * 項目名稱:MyApplication
 * 類描述:
 * 創(chuàng)建人:woochen123
 * 創(chuàng)建時間:2017/11/14 21:39
 */
public class MyAdapter implements BaseAdapter {
    private List<String>  mDatas;
    private Context mContext;

    public MyAdapter(List<String> datas,Context context) {
        this.mDatas = datas;
        mContext = context;
    }

    @Override
    public int getCount() {
        return mDatas.size();
    }

    @Override
    public View getView(int position) {
        TextView textView  = new TextView(mContext);
        textView.setText(mDatas.get(position));
        return textView;
    }
}
/**
 * 項目名稱:MyApplication
 * 類描述:
 * 創(chuàng)建人:woochen123
 * 創(chuàng)建時間:2017/11/14 21:25
 */
public class MyListView extends ScrollView {
    LinearLayout mLinearLayout;
    public MyListView(Context context) {
        this(context,null);
    }

    public MyListView(Context context, AttributeSet attrs) {
        this(context, attrs,0);
    }

    public MyListView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        mLinearLayout = new LinearLayout(context);
        mLinearLayout.setOrientation(LinearLayout.VERTICAL);
        addView(mLinearLayout,0);
    }

    @Override
    public void addView(View child) {
        mLinearLayout.addView(child);
    }

    public void setAdapter(BaseAdapter adapter) {
        for (int i = 0; i < adapter.getCount(); i++) {
            addView(adapter.getView(i));
        }
    }
}

3.使用

listview的適配器

4.總結

1.適配器模式可以將兩種不同的類型實現(xiàn)進行轉化
2.有類適配器和對象適配器兩種(類適配器由于要繼承被適配的類景鼠,所以可能導致目標類存在冗余的方法氨肌,所以對象適配器會比較靈活)

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末耕漱,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子羊异,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件野舶,死亡現(xiàn)場離奇詭異易迹,居然都是意外死亡,警方通過查閱死者的電腦和手機平道,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進店門睹欲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人巢掺,你說我怎么就攤上這事句伶。” “怎么了陆淀?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵考余,是天一觀的道長。 經(jīng)常有香客問我轧苫,道長楚堤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任含懊,我火速辦了婚禮身冬,結果婚禮上,老公的妹妹穿的比我還像新娘岔乔。我一直安慰自己酥筝,他們只是感情好,可當我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布雏门。 她就那樣靜靜地躺著嘿歌,像睡著了一般。 火紅的嫁衣襯著肌膚如雪茁影。 梳的紋絲不亂的頭發(fā)上叫编,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天姥份,我揣著相機與錄音,去河邊找鬼。 笑死污淋,一個胖子當著我的面吹牛硝皂,可吹牛的內(nèi)容都是我干的疫剃。 我是一名探鬼主播桨菜,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼年扩!你這毒婦竟也來了蚁廓?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤厨幻,失蹤者是張志新(化名)和其女友劉穎相嵌,沒想到半個月后腿时,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡饭宾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年批糟,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片看铆。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡徽鼎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出弹惦,到底是詐尸還是另有隱情否淤,我是刑警寧澤,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布棠隐,位于F島的核電站石抡,受9級特大地震影響,放射性物質發(fā)生泄漏助泽。R本人自食惡果不足惜啰扛,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望嗡贺。 院中可真熱鬧隐解,春花似錦、人聲如沸诫睬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽摄凡。三九已至溜嗜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間架谎,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工辟躏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留谷扣,地道東北人。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓捎琐,卻偏偏與公主長得像会涎,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子瑞凑,可洞房花燭夜當晚...
    茶點故事閱讀 44,678評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,095評論 25 707
  • 每日千字文28 難得假期末秃,難得有人幫忙帶孩子,這樣好的時光當然是要追追劇的啦籽御! 不過练慕,電視被老人和孩子輪番霸占惰匙,電...
    星酉林夕閱讀 303評論 0 0
  • 最適合開發(fā)人工智能的編程語言有哪些 這兩年项鬼,“一只狗”AlphaGo打遍天下棋手無對手,讓我們認識了什么叫人工智能...
    悠悠君子閱讀 152評論 0 0
  • 糾結好久的事劲阎,也有了結果绘盟,不再用我去做選擇。一些事悯仙,一些人龄毡,過去了就過去了,再糾結對誰都不好锡垄。緣分是一個很奇妙的東...
    隨云桐花閱讀 183評論 0 0
  • 有些人很容易被人愛 有些人卻很難 正如有些人很容易愛上人 有些人卻很難 百利甜酒 我只記住了第一次的味道 日后 喝...
    木子非李曰閱讀 209評論 0 0