Android快速開發之appBase——(3).詳解IHolder和IData,appbaseiholder

來源:互聯網
上載者:User

Android快速開發之appBase——(3).詳解IHolder和IData,appbaseiholder
Android快速開發之appBase——(3).詳解IHolder和IData

IHolder和IData是AVLib的兩個組件,在前面已經使用過了,那麼這一篇將會詳細說明這兩個組件的用法。
IHolder
 IHolder是AVLib中View自動綁定的組件規範,所有@Id使用只能存在IHolder派生的類中。
public class Holder extends IHolder{    @Id(R.id.tvTitle)    TextView tvTitle;    @Id(value = R.id.imgIcon, src = R.drawable.imgIcon)    ImageView imgIcon;    @Override    public void initViewParams(){    }}
IData
IData是AVLib中資料自動綁定的組件規範,所有@DataBind只能存在IData派生出的類中。
package com.snicesoft.avlib.rule;/** * @author zhu zhe * @since 2015年4月15日 上午9:54:17 * @version V1.0 */public abstract class IData {}
IData僅僅只是定義了組件規範,必須要繼承IData。

2. @DataBind詳解
Id():表示View的ResourceId值
dataType():繫結資料類型,現在有string、img、adapter、null,預設是string
loadingResId():如果是綁定圖片,這個則為載入的緩衝圖片
failResId():如果是綁定圖片,這個則為載入失敗的圖片
prefix():當前綁定的值的首碼
suffix():當前綁定的值的尾碼
pattern():當前綁定的值如果需要時間格式化,則可以配置完成

樣本

@DataBind(id = R.id.tvTitle, prefix = "我是歌手-")String title = "第二季";

最終tvTitle的值等於”我是歌手-第二季”。

@DataBind(id = R.id.imgIcon,dataType = DataType.IMG, prefix = "http://img.xx.com/woshigeshou/")String icon = "upload/539728234.png";

最終結果會將http://img.xx.com/woshigeshou/upload/539728234.png這張網狀圖片載入給imgIcon。

@DataBind(id = R.id.lvData, dataType = DataType.ADAPTER)ListDemoAdapter adapter = new ListDemoAdapter();

最終結果會將這個adapter適配給lvData這個組件
3. 使用樣本

public class Data extends IData{    @DataBind(id = R.id.imgIcon,dataType = DataType.IMG, prefix = "http://img.xx.com/woshigeshou/")    String icon = "upload/539728234.png";    @DataBind(id = R.id.lvData, dataType = DataType.ADAPTER)    ListDemoAdapter adapter = new ListDemoAdapter();}
重點
可能會有同學問,上面的規範和使用講完了,怎麼還是看不到如何綁定的。所有綁定都在AVLib.java這個類中,我就不貼代碼了,大家可以自己去看看。

從這個結構中可以看到initHolder和dataBind,沒錯這兩個就是初始化Holder和綁定資料的方法。setLoadImg是用來配置圖片載入功能,目前appBase的Application中預設使用BitmapUtils作為圖片載入器。
最後
目前,IHolder和IData包含常用的綁定,肯定存在有無法完成綁定的內容,還請大家幫忙測試,多多提建議或者一起和我完善和最佳化。下面是我建立的一個討論群,歡迎加入

279307798

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.