編輯:關於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 List obj;
@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。
Android 實現控件懸浮效果實例代碼
隨著移動互聯網的快速發展,它已經和我們的生活息息相關了,在公交地鐵裡面都能看到很多人的人低頭看著自己的手機屏幕,從此“低頭族”一詞就產生了,作為一名移動行業的開發人員,我
andorid 自定義SwitchButton
因項目緣故需重新定制SwitchButton,效果如下: 過程如下:1.圓角矩形的繪制2.字體繪制3.小圓繪制4.左右滑動動畫效果繪制代碼如下: package
酷狗ktv手機版玩法介紹 酷狗ktv在線k歌怎麼玩
喜歡K歌的小伙伴注意啦啦!萬眾期待的酷狗ktv手機版終於上線啦!現在,只要下載了酷狗ktv的手機版,不用去K房,在家也一樣可以開啟唱K模式!那麼,作為酷狗旗
編寫原生看書頁面 輪播圖模塊時遇到的fragment問題
書籍頁面需要顯示輪播圖組件down下來用到看書中,是封裝在fragment裡的,我是在BookView中動態調用的,調用方式:LayoutInflater lif = (