Android開(kāi)發(fā)框架(4)頁(yè)面管理參數(shù)傳遞

EasyAndroid 是一個(gè)android完整的安裝開(kāi)發(fā)框架,已經(jīng)應(yīng)用于幾個(gè)生產(chǎn)項(xiàng)目。

EasyAndroid 不是脫離其你原來(lái)熟悉的開(kāi)發(fā)框架而另起一套,它只是將原來(lái)的流程極大地簡(jiǎn)化,所以他完全兼容其他開(kāi)發(fā)框架。同時(shí)也會(huì)兼容Google后續(xù)的升級(jí)。需要的同學(xué)可以放心使用。
github地址:https://github.com/chen397254698/EasyAndroid

EasyAndroid

一個(gè)完整基于kotlin的安卓開(kāi)發(fā)框架,采用了mvvm設(shè)計(jì)模式。涵蓋了:

1、基于retrofit2封裝的通過(guò)kotlin協(xié)程實(shí)現(xiàn)的網(wǎng)絡(luò)框架

2、基于阿里開(kāi)源arouter修改的api-router實(shí)現(xiàn)項(xiàng)目模塊化

3、基于glide的圖片加載緩存框架

4、基于room實(shí)現(xiàn)的往來(lái)數(shù)據(jù)緩存加載

5、基于step實(shí)現(xiàn)的數(shù)據(jù)異步提交

6、基于PreferenceHolder實(shí)現(xiàn)的本地?cái)?shù)據(jù)快速存儲(chǔ)

7、基于mlist實(shí)現(xiàn)的簡(jiǎn)單復(fù)雜列表的快速開(kāi)發(fā)擴(kuò)展等等。。

本框架幾乎涵蓋了開(kāi)發(fā)所需的所有模塊組件。簡(jiǎn)單fork之后就可以基于框架快速開(kāi)發(fā)。

參數(shù)傳遞

上文說(shuō)到EasyAndroid的頁(yè)面是基于fragment進(jìn)行管理的,可以非常便捷的創(chuàng)建頁(yè)面。而且和原來(lái)的activity創(chuàng)建頁(yè)面完全兼容。那有了頁(yè)面fragment,頁(yè)面間的參數(shù)要如何傳遞?

參數(shù)的傳遞和獲取簡(jiǎn)單到令人發(fā)指?。?!

舉個(gè)例子:

//需要傳遞的參數(shù)較少就用Pair傳遞
startPage(ParamsFragment::class, "day" to "第一天", "week" to 3, "wea" to 30.5F)

//參數(shù)較多的情況下用bundle傳遞
Bundle().run { 
    putString("day", "第一天")
    putInt( "week", 3)
    putFloat( "wea", 30.5F)
    startPage(ParamsFragment::class, bundle = this)
}

//參數(shù)獲取和使用,更是簡(jiǎn)單

class ParamsFragment :BaseSimpleFragment(){

    private val day by ArgString()

    private val date by ArgStringNull()

    private val week by ArgInt()

    private val wea by ArgFloat()

    override val contentLayoutId = R.layout.fragment_weather

    override fun initAndObserve() {

        _day.text = day
        _date.text = date
        _week.text = "$week"
        _wea.text = "$wea"
    }
}

參數(shù)回傳

支持傳統(tǒng)的參數(shù)回傳方式

//設(shè)置requestCode
 startPage(ParamsFragment::class, bundle = this, requestCode = 101)

//在onActivityResult 接收參數(shù)的回傳
  override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (requestCode == 101 && resultCode == Activity.RESULT_OK) {
            
        }
    }

這種方式相對(duì)繁瑣,不是簡(jiǎn)單編程的風(fēng)格。EasyAndroid支持非常靈活的事件通知,頁(yè)面的回傳用通知實(shí)現(xiàn)將更加便捷。下一章就將詳細(xì)說(shuō)明EasyAndroid中通知的使用。
EasyAndroid中通知 http://www.itdecent.cn/p/048f824e6f90

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容