IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> AS自定义模板,效率提升的不是一星半点,2021大厂Android面试集合 -> 正文阅读

[移动开发]AS自定义模板,效率提升的不是一星半点,2021大厂Android面试集合

</androidx.constraintlayout.widget.ConstraintLayout>

TanJiaJunActivityForDagger2.kt.ftl

package? k o t l i n E s c a p e d P a c k a g e N a m e . u i . {kotlinEscapedPackageName}.ui. kotlinEscapedPackageName.ui.{businessName}.activity

import?android.os.Bundle

import?androidx.activity.viewModels

import?${applicationPackage}.R

import? a p p l i c a t i o n P a c k a g e . d a t a b i n d i n g . A c t i v i t y {applicationPackage}.databinding.Activity applicationPackage.databinding.Activity{objectKind}Binding

import?com.tanjiajun.androidgenericframework.ui.BaseActivity

import? k o t l i n E s c a p e d P a c k a g e N a m e . u i . {kotlinEscapedPackageName}.ui. kotlinEscapedPackageName.ui.{businessName}.viewmodel.${viewModelName}

class? a c t i v i t y N a m e ? : ? B a s e A c t i v i t y < A c t i v i t y {activityName}?:?BaseActivity<Activity activityName?:?BaseActivity<Activity{objectKind}Binding,?${viewModelName}>()?{

override?val?layoutRes:?Int?=?R.layout.${layoutName}

override?val?viewModel?by?viewModels<${viewModelName}>?{?viewModelFactory?}

override?fun?onCreate(savedInstanceState:?Bundle?)?{

super.onCreate(savedInstanceState)

}

}

TanJiaJunViewModelForDagger2.kt.ftl

package? k o t l i n E s c a p e d P a c k a g e N a m e . u i . {kotlinEscapedPackageName}.ui. kotlinEscapedPackageName.ui.{businessName}.viewmodel

import?com.tanjiajun.androidgenericframework.ui.BaseViewModel

import?javax.inject.Inject

class?${viewModelName}?@Inject?constructor()?:?BaseViewModel()?{

}

template_blank_activity.png


展示模板界面的缩略图,如下图所示:

template.xml


用于定义创建面板的控件,代码如下所示:

<template

format=“8”

revision=“8”

name=“TanJiaJun?Activity?For?Dagger2”

minApi=“9”

minBuildApi=“26”

description=“Creates?a?new?activity?of?Android?Generic?Framework?For?Dagger2.”>

<parameter

id=“packageName”

name=“Package?Name”

type=“string”

constraints=“package”

default=“com.tanjiajun.androidgenericframework”?/>

<parameter

id=“businessName”

name=“Business?Name”

type=“string”

constraints=“nonempty”

default=“main”?/>

<parameter

id=“objectKind”

name=“Object?Kind”

type=“string”

constraints=“nonempty”

default=“TanJiaJun”?/>

<parameter

id=“activityName”

name=“Activity?Name”

type=“string”

constraints=“class|unique|nonempty”

suggest="${extractLetters(objectKind)}Activity"

default=“TanJiaJunActivity”

help=“The?name?of?the?activity?class?to?create.”?/>

<parameter

id=“layoutName”

name=“Layout?Name”

type=“string”

constraints=“layout|unique|nonempty”

suggest="${activityToLayout(activityName)}"

default=“activity_tan_jia_jun”

help=“The?name?of?the?layout?to?create?for?the?activity.”?/>

<parameter

id=“viewModelName”

name=“ViewModel?Name”

type=“string”

constraints=“class|unique|nonempty”

suggest="${extractLetters(objectKind)}ViewModel"

default=“TanJiaJunViewModel”

help=“The?name?of?the?viewModel?class?to?create.”?/>

template_blank_activity.png

<

  • packageName:包名,默认值是com.tanjiajun.androidgenericframework。

  • businessName:业务名称,默认值是main。

  • objectKind:对象类型,默认值是TanJiaJun。

  • activityName:Activity名称,默认值是TanJiaJunActivity。

  • layoutName:布局名称,默认值是activity_tan_jia_jun。

  • viewModelName:ViewModel名称,默认值是TanJiaJunViewModel。

每一个parameter对应创建面板的一个控件,控件的id可以得到用户输入的值,用于渲染ftl文件。下面以TanJiaJunAcitivityForDagger2为例生成相应的代码。/? ?生成代码? ?/activity_tan_jia_jun.xml,代码如下所示:

<layout?xmlns:android=“http://schemas.android.com/apk/res/android”

xmlns:app=“http://schemas.android.com/apk/res-auto”>

<variable

name=“viewModel”

type=“com.tanjiajun.androidgenericframework.ui.ui.main.viewmodel.TanJiaJunViewModel”?/>

<androidx.constraintlayout.widget.ConstraintLayout

android:layout_width=“match_parent”

android:layout_height=“match_parent”

android:background="@color/background_color">

</androidx.constraintlayout.widget.ConstraintLayout>

TanJiaJunActivity.kt,代码如下所示:

package?com.tanjiajun.androidgenericframework.ui.ui.main.activity

import?android.os.Bundle

import?androidx.activity.viewModels

import?com.tanjiajun.androidgenericframework.R

import?com.tanjiajun.androidgenericframework.databinding.ActivityTanJiaJunBinding

import?com.tanjiajun.androidgenericframework.ui.BaseActivity

import?com.tanjiajun.androidgenericframework.ui.ui.main.viewmodel.TanJiaJunViewModel

class?TanJiaJunActivity?:?BaseActivity<ActivityTanJiaJunBinding,?TanJiaJunViewModel>()?{

override?val?layoutRes:?Int?=?R.layout.activity_tan_jia_jun

override?val?viewModel?by?viewModels?{?viewModelFactory?}

override?fun?onCreate(savedInstanceState:?Bundle?)?{

super.onCreate(savedInstanceState)

}

}

TanJiaJunViewModel.kt:代码如下所示:

学习分享

在当下这个信息共享的时代,很多资源都可以在网络上找到,只取决于你愿不愿意找或是找的方法对不对了

很多朋友不是没有资料,大多都是有几十上百个G,但是杂乱无章,不知道怎么看从哪看起,甚至是看后就忘

如果大家觉得自己在网上找的资料非常杂乱、不成体系的话,我也分享一套给大家,比较系统,我平常自己也会经常研读。

2021最新上万页的大厂面试真题

image

七大模块学习资料:如NDK模块开发、Android框架体系架构…

image

2021大厂面试真题:

image

只有系统,有方向的学习,才能在短时间内迅速提高自己的技术,只有不断地学习,不懈的努力才能拥有更好的技术,才能在互联网行业中立于不败之地。

你愿不愿意找或是找的方法对不对了

很多朋友不是没有资料,大多都是有几十上百个G,但是杂乱无章,不知道怎么看从哪看起,甚至是看后就忘

如果大家觉得自己在网上找的资料非常杂乱、不成体系的话,我也分享一套给大家,比较系统,我平常自己也会经常研读。

2021最新上万页的大厂面试真题

[外链图片转存中…(img-CQkTwlT3-1643878720635)]

七大模块学习资料:如NDK模块开发、Android框架体系架构…

[外链图片转存中…(img-r1HLHMGT-1643878720636)]

2021大厂面试真题:

[外链图片转存中…(img-H2a0pOKY-1643878720636)]

只有系统,有方向的学习,才能在短时间内迅速提高自己的技术,只有不断地学习,不懈的努力才能拥有更好的技术,才能在互联网行业中立于不败之地。

本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-02-04 11:08:59  更:2022-02-04 11:09:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 14:08:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码