個人對於mvp的看法,請查詢本人以前的部落格,本次主要是用mvp請求多個物件
可以自己封裝乙個api用來封裝請求的方法
這裡提供了請求5中不同的物件的方法,可以參考
當然如果不會mvp可以檢視一下我的部落格mvp簡介及簡單應用
public
inte***ce
api"
) observable]>
getbanner
(@path
("path"
) string path,
@query
("siteid"
) string siteid,
@query
("itemid"
) string itemid,
@query
("act"
) string act)
;//請求產品的方法
@get
("api/"
) observable]>
getproduct
(@path
("path"
) string path,
@query
("siteid"
) string siteid,
@query
("act"
) string act,
@query
("ctype"
) string ctype,
@query
("mid"
) string mid)
;//請求選單的方法
@get
("api/"
) observable]>
getmenu
(@path
("path"
) string path,
@query
("siteid"
) string siteid,
@query
("act"
) string act,
@query
("ctype"
) string ctype)
;//登入的方法
@get
("api/"
) observable
getregister
(@path
("path"
) string path,
@query
("siteid"
) string siteid,
@query
("act"
) string act,
@query(;
//退出的方法
@get
("api/"
) observable
getexit
(@path
("path"
) string path,
@query
("siteid"
) string siteid,
@query
("act"
) string act,
@query
("ctype"
) string ctype)
;}
自己建立的imodel介面,裡面的介面分別是負責請求不同的entity(也就是所謂的bean或者實體類)物件的
每個介面都有自己的工作,呼叫的時候可以用imodel點出自己需要用的那個子model介面
public
inte***ce
imodel
//請求產品分類的model
inte***ce
productview
//請求中間選單的model
inte***ce
menuview
//請求登入介面的model
inte***ce
registerview
//請求退出介面的model
inte***ce
exitview
}
接下來是iview
它的作用和imodel是一樣的
唯一的區別在於imodel是負責請求資料,iview是負責給檢視提供資料來進行相對應的操作
public
inte***ce
iview
//請求產品分類的view
inte***ce
productview
//請求中間選單的view
inte***ce
menuview
//請求登入介面的view
inte***ce
registerview
//請求退出介面的view
inte***ce
exitview
}
由於物件太多,就用乙個banner的來進行展示
和普通的區別就在於這個不是乙個imodel,而是imodel點出來的子model
public
class
bannermodel
//開始請求資料的方法
public
void
startloadbeanner()
@override
public
void
onnext
(bannerentity[
] bannerentities)
@override
public
void
onerror
(throwable e)
@override
public
void
oncomplete()
});}
}
接下來是該物件的presenter
public
class
bannerpresenter
implements
imodel.beannerview
//開始的方法
public
void
startloadbanner()
//資料請求成功,把資料傳遞給view
@override
public
void
loadsucess
(bannerentity[
] bannerentity)
//資料請求失敗,把報錯資訊傳遞給view
@override
public
void
loadfail
(string message)
}
主頁面的應用
這裡請求了三個介面的資料,按照個人需要實現對應的介面,並建立對應的presenter物件
//需要幾個就實現幾個介面和建立對應的presenter物件
public
class
myfragment_1
extends
fragment
implements
iview.beannerview
, iview.menuview,iview.productview
private
void
initview
(view view)
//請求輪播圖成功方法
@override
public
void
loadsucess
(bannerentity[
] bannerentity)
banner.
setbannerstyle
(bannerconfig.num_indicator_title)
.setbannertitles
(list_title)
.setimages
(list_src)
.setdelaytime
(1000).
setimageloader
(new
imageloader()
}).start()
;}//請求選單成功方法
@override
public
void
loadsucess
(menuentity[
] menuentity)
menuadapter.
notifydatasetchanged()
;}//請求產品成功方法
@override
public
void
loadsucess
(productentity[
] productentity)
productadapter.
notifydatasetchanged()
;}@override
public
void
loadfail
(string message)
}
iOS ASI 管理多個請求
asihttprequest繼承自nsoperation,這樣就可以把多個請求放在乙個佇列中,這樣便於管理多個請求 queen addoperation request1 好處1 一旦把請求新增到佇列,會自動開始執行,就不用調startasynchronous方法了 queen addoperati...
建立多個物件
class cat 屬性 方法 def eat self print 貓在吃魚.def drink self print 貓在喝可樂.def introduce self print 名字是 s,年齡是 d 湯姆的名字,湯姆的年齡 print 名字是 s,年齡是 d tom.name,tom.age...
建立多個物件
class cat 屬性 方法 def eat self print 貓在吃魚 def drink self print 貓在喝可樂.def introduce self print 名字是 s,年齡是 d 湯姆的名字,湯姆的年齡 print 名字是 s,年齡是 d tom.name,tom.age...