val message: String = "Hello, Kotlin Fragment!" init { Log.d("Fragment", message) } } 在上述代码中,我们没有定义参数或自定义的构造函数,而是使用了默认的无参数构造函数。然后,在构造函数中我们直接初始化了message属性。 # 1.5使用构造函数传递参数 当我们使用Kotlin Fragment时,有时我们需要将参数从Ac...
若被注解的类是Fragment的子类,最终的处理方式是调用无参构造函数构造出这个类的实例,并调用setArguments(Bundle args)将请求参数传入Fragment的bundle中,最后返回该实例 被@Interceptor注解的类需实现IRouteInterceptor接口,这些类主要处理是否拦截路由的逻辑,比如某些需要登录才能启动的组件,就可以用到拦截器 @Inject用于标记...
若被注解的类是Service的子类,最终的处理方式有两种,也就 是Android中启动Service的两种方式,使用哪种启动方式取决于是否调用了withServiceConn函数添加了ServiceConnection; 若被注解的类是Fragment的子类,最终的处理方式是调用无参构造函数构造出这个类的实例,并调用setArguments(Bundle args)将请求参数传入Fragment的bundle...
例如继承FragmentPagerAdapter时声明一个构造方法—— classViewPagerAdapter(fm: FragmentManager) : FragmentPagerAdapter(fm) { init {//初始化} } 当声明多个构造方法时,如 publicclassLoadMoreRecyclerView extends RecyclerView {publicLoadMoreRecyclerView(Context context) { super(context); }publicLoadMoreRecyclerView...
不支持传参构造单例。 object:伴生对象 Kotlin 当中没有static 关键字,所以我们没有办法直接定义静态方法和静态变量。不过,Kotlin 还是为我们提供了伴生对象,来帮助实现静态方法和变量。 Kotlin 伴生: companion object { const val LEARNING_FRAGMENT_INDEX = 0 fun jumpToMe(context: Context, index: Int) { cont...
• 不支持传参构造单例。 object:伴生对象 Kotlin 当中没有static 关键字,所以我们没有办法直接定义静态方法和静态变量。不过,Kotlin 还是为我们提供了伴生对象,来帮助实现静态方法和变量。 Kotlin 伴生: companion object { const val LEARNING_FRAGMENT_INDEX = 0 ...
更少的函数式编程特性:Java 语言在函数式编程方面的支持相对较弱,虽然 Java 8 引入了 Lambda 表达式和 StreamAPI,但是 Kotlin 语言在这方面的支持更加全面和友好。 不够灵活,缺乏扩展能力:我们不能给 第三方SDK中的classes 或者 interfaces 增加新的方法。。
android kotlin 同一activity多个fragment共用一个viewmodel查询room,文章目录一、使用Kotlin来简化findViewById代码二、Kotlin特性1.不需要“;”结尾2.“:”的使用3.没有“new”关键字4.变量,常量定义,类型推断5.空指针安全6.函数定义7.类检测及自动转换8.in、区间和
2.1 继承函数 java 中的父类默认都是 可以继承的,所以我们在写 BaseActivity 或者 BaseFragment 的时候都要慎重的设计,因为一不小心 就会让子类实现很多没有的类。所以 kotlin中 的方法默认都是 final ,如果需要子类继承就要特地标记 open 修饰符。 class MeButton : Clicker{ ...
不支持传参构造单例。 object:伴生对象 Kotlin 当中没有static 关键字,所以我们没有办法直接定义静态方法和静态变量。不过,Kotlin 还是为我们提供了伴生对象,来帮助实现静态方法和变量。 Kotlin 伴生: companion object { const val LEARNING_FRAGMENT_INDEX = 0 ...