Android开发框架(4)页面管理参数传递

EasyAndroid 是一个android完整的安装开发框架,已经应用于几个生产项目。

EasyAndroid 不是脱离其你原来熟悉的开发框架而另起一套,它只是将原来的流程极大地简化,所以他完全兼容其他开发框架。同时也会兼容Google后续的升级。需要的同学可以放心使用。
github地址:https://github.com/chen397254698/EasyAndroid

EasyAndroid

一个完整基于kotlin的安卓开发框架,采用了mvvm设计模式。涵盖了:

1、基于retrofit2封装的通过kotlin协程实现的网络框架

2、基于阿里开源arouter修改的api-router实现项目模块化

3、基于glide的图片加载缓存框架

4、基于room实现的往来数据缓存加载

5、基于step实现的数据异步提交

6、基于PreferenceHolder实现的本地数据快速存储

7、基于mlist实现的简单复杂列表的快速开发扩展等等。。

本框架几乎涵盖了开发所需的所有模块组件。简单fork之后就可以基于框架快速开发。

参数传递

上文说到EasyAndroid的页面是基于fragment进行管理的,可以非常便捷的创建页面。而且和原来的activity创建页面完全兼容。那有了页面fragment,页面间的参数要如何传递?

参数的传递和获取简单到令人发指!!!

举个例子:

//需要传递的参数较少就用Pair传递
startPage(ParamsFragment::class, "day" to "第一天", "week" to 3, "wea" to 30.5F)

//参数较多的情况下用bundle传递
Bundle().run { 
    putString("day", "第一天")
    putInt( "week", 3)
    putFloat( "wea", 30.5F)
    startPage(ParamsFragment::class, bundle = this)
}

//参数获取和使用,更是简单

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"
    }
}

参数回传

支持传统的参数回传方式

//设置requestCode
 startPage(ParamsFragment::class, bundle = this, requestCode = 101)

//在onActivityResult 接收参数的回传
  override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (requestCode == 101 && resultCode == Activity.RESULT_OK) {
            
        }
    }

这种方式相对繁琐,不是简单编程的风格。EasyAndroid支持非常灵活的事件通知,页面的回传用通知实现将更加便捷。下一章就将详细说明EasyAndroid中通知的使用。
EasyAndroid中通知 https://www.jianshu.com/p/048f824e6f90

你可能感兴趣的:(Android开发框架(4)页面管理参数传递)