編輯:關於Android編程
public interface ILogin { @HttpSrcMethod(url = "http://www.baidu.com") public UserInfoModel login(@Param("name") String name, @Param("pass") String pass, @Header("par3") String par3); @HttpSrcMethod(url = "http://www.baidu.com",connMode = HttpConnectMode.Post,runMode = HttpRunMode.Async,filters = TestFilter.class) public UserInfoModel regist(@Param("name") String name, @Param("pass") String pass, @Header("par3") String par3); }
@HttpSrcMethod表示這個方法將被代理為Http請求業務,注解可以指定url,參數,頭的參數映射,可以配置同步還是異步請求,親求方式Post/Get等,還有過濾器,過濾器將在框架解析返回的string之前對返回的字符串進行一些自定義操作,如解密等。
2.完成帶映射的數據模型,注解映射JSON/Xml數據元素到Model的關系,注解映射ViewId到Model的關系
@JsonOrm public class UserInfoModel implements IHandler{ @BindTextView(R.id.text1) @JsonString private String name; @BindTextView(R.id.text3) @JsonString private String pass; @BindRecycleView(R.id.list) @BindObj @JsonSet(clazz = ItemModel.class) private Listobj; @Override public void handler() { name = name+"handled"; } }
@ListDataSrc(R.layout.item) public class ItemModel { @BindText(R.id.item_text) @JsonString private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
如果Model實現了IHandler接口,那麼框架將會在json/xml解析完成之後,調用handle方法,增加對model的控制力,完成一些較為復雜的數據處理邏輯,這也是這一模式的缺點,控制力低,只適合較為簡單的流程邏輯。
這樣僅僅通過這一個數據模型類,框架就知道了JSON元素和View之間的關系了。
3.控制層的調用。只需要申明一下你的業務接口,讓框架生成代理對象,直接調用即可。
public class MainActivity extends AppCompatActivity implements ICallBack{ public final static String json = "{\n" + " \"name\": \"gy\",\n" + " \"pass\": \"123\",\n" + " \"obj\": [\n" + " {\n" + " \"name\": \"gy\"\n" + " },\n" + " {\n" + " \"name\": \"gy\"\n" + " },\n" + " {\n" + " \"name\": \"gy\"\n" + " },\n" + " {\n" + " \"name\": \"gy\"\n" + " }\n" + " ]\n" + "}"; private ILogin login; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); login = HttpProxyFactory.With(ILogin.class) .addViewContent("login",this) .addCallBack("login",this) .establish(); login.login("gy","123","xxxx"); } @Override public void onSuccess(Object o) { } @Override public void onFailed(Object o) { } }
public class MyApplication extends Application{ @Override public void onCreate() { super.onCreate(); S.init(this); MvvmCacheControl.preLoad(new Class[]{ILogin.class}); } }附上結果 好了,忙裡偷閒水了一篇,以上只是對這個小玩意的使用介紹,這個還屬於demo級,有很多功能還沒有實現,代碼也不夠健壯。具體的實現分析就放在下一篇好了,敬請期待。下面附上源碼地址,整合在我的小框架裡了,Android Studio直接導入工程即可GitHub。
隨著移動互聯網的快速發展,它已經和我們的生活息息相關了,在公交地鐵裡面都能看到很多人的人低頭看著自己的手機屏幕,從此“低頭族”一詞就產生了,作為一名移動行業的開發人員,我
因項目緣故需重新定制SwitchButton,效果如下: 過程如下:1.圓角矩形的繪制2.字體繪制3.小圓繪制4.左右滑動動畫效果繪制代碼如下: package
喜歡K歌的小伙伴注意啦啦!萬眾期待的酷狗ktv手機版終於上線啦!現在,只要下載了酷狗ktv的手機版,不用去K房,在家也一樣可以開啟唱K模式!那麼,作為酷狗旗
書籍頁面需要顯示輪播圖組件down下來用到看書中,是封裝在fragment裡的,我是在BookView中動態調用的,調用方式:LayoutInflater lif = (