范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

将Kotlin添加到现有应用

  转载From:https://developer.android.google.cn/kotlin/add-kotlin
  Android Studio 提供全面的 Kotlin 支持,让您能够将 Kotlin 文件添加到现有项目并将 Java 语言代码转换为 Kotlin 代码。然后,您可以使用 Android Studio 的所有现有工具来处理 Kotlin 代码,包括自动补全、lint 检查、重构和调试等。
  如果您要开始一个新项目,并希望使用 Kotlin,请参阅创建项目。
  如需示例,请查看我们的 Kotlin 代码示例。将 Kotlin 添加到现有项目
  如需将 Kotlin 添加到项目,请执行以下操作:依次点击 File > New,然后从各种 Android 模板中选择一个,例如一个新的空白 Fragment,如图 1 所示。如果您未在此菜单中看到模板列表,请先打开 Project 窗口,然后选择您的应用模块。图 1.从可用模板中进行选择,例如 Fragment 或 Activity。在随即显示的向导中,选择 Kotlin 作为 Source Language。图 2 显示了当您要创建新 Activity 时使用的 New Android Activity 对话框。图 2. New Android Activity 对话框,您可以从中选择 Kotlin 作为 Source Language。继续执行向导中的操作,直到完成。
  或者,您也可以依次点击 File > New > Kotlin File/Class 以创建一个基本的 Kotlin 文件。如果您没有看到此选项,请打开 Project 窗口,然后选择 java 目录。在 New Kotlin File/Class 窗口中,您可以定义文件名并提供多种文件类型选择:File、Class、Interface、Enum Class 或 Object。您做出的选择决定了在新的 Kotlin 文件中为您创建的基本架构。如果您选择 Class,Android Studio 会创建一个具有给定名称和匹配类定义的新 Kotlin 源文件。如果您选择 Interface,会在文件中声明一个接口,诸如此类。
  如果这是您首次直接将一个新的 Kotlin 类或文件添加到项目(不使用 Android 模板),Android Studio 会显示一条警告,指出项目中未配置 Kotlin,如图 3 所示。您可以在编辑器的右上角点击 Configure 或在右下角弹出的事件日志提醒中点击该按钮来配置 Kotlin。
  图 3.如果没有为项目配置 Kotlin,Android Studio 会显示一个警告对话框。
  出现提示时,选择用于为包含 Kotlin 文件的所有模块配置 Kotlin 的 All modules containing Kotlin files 选项,如图 4 所示:
  图 4. 选择为包含 Kotlin 代码的所有模块配置 Kotlin。
  您点击 OK 后,Android Studio 会将 Kotlin 添加到项目类路径,并将 Kotlin Android 插件应用于包含 Kotlin 文件的每个模块。build.gradle   文件应与以下示例类似:// Project build.gradle file. buildscript {     ext.kotlin_version = "1.4.10"     ...     dependencies {         classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"     } } // Inside each module using kotlin plugins {     ...     id "kotlin-android" } ...  dependencies {    implementation "androidx.core:core-ktx:1.3.2"    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" } 源代码组织
  默认情况下,新的 Kotlin 文件保存在 src/main/java/   中,这样方便您在一个位置同时查看 Kotlin 文件和 Java 文件。如果您希望将 Kotlin 文件与 Java 文件分开,可以将 Kotlin 文件放在 src/main/kotlin/   下。如果这样做,则还需要在 sourceSets  配置中添加此目录,如下所示:android {    sourceSets {        main.java.srcDirs += "src/main/kotlin"    } } 将现有 Java 代码转换为 Kotlin 代码
  如需将 Java 代码转换为 Kotlin 代码,请在 Android Studio 中打开 Java 文件,然后依次选择 Code > Convert Java File to Kotlin File。或者,也可以创建一个新的 Kotlin 文件(依次选择 File > New > Kotlin File/Class),然后将 Java 代码粘贴到该文件中。Android Studio 随即显示一条提示,询问您是否要将代码转换为 Kotlin 代码,如图 5 所示。点击 Yes 即可转换。您可以选择性地勾选 Don"t show this dialog next time,这样会使将来的转换自动进行。
  图 5. Android Studio 可将 Java 代码转换为 Kotlin 代码。代码转换和可为 null 性
  Android Studio 的转换过程会生成与编译和运行的 Kotlin 代码在功能上等效的代码。不过,您可能需要对转换后的代码进行额外的优化。例如,您可能想要优化转换后的代码如何处理可为 null 类型。
  在 Android 中,通常会延迟 View   对象及其他组件的初始化,直到它们附加到的 Fragment 或 Activity 达到适当的生命周期状态。例如,您可能在某个 Fragment 中引用了一个按钮,如以下代码段所示:public class JavaFragment extends Fragment {      // Null until onCreateView.     private Button button;      @Override     public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,             Bundle savedInstanceState) {         View root = inflater.inflate(R.layout.fragment_content, container,false);          // Get a reference to the button in the view, only after the root view is inflated.         button = root.findViewById(R.id.button);          return root;     }      @Override     public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {         super.onViewCreated(view, savedInstanceState);          // Not null at this point of time when onViewCreated runs         button.setOnClickListener(new View.OnClickListener() {             @Override             public void onClick(View v) {                 ...             }         });     } }
  尽管按钮变量可为 null,但实际上,在本例中使用时,它绝不能为 null。不过,由于在构建时没有为按钮变量赋值,因此生成的 Kotlin 代码将 Button   视为可为 null 类型,并在添加点击监听器时使用非 null 断言运算符来解封按钮,如下所示:class JavaFragment : Fragment() {      // Null until onCreateView.     private var button: Button? = null      override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,             savedInstanceState: Bundle?): View? {         ...         // Get a reference to the button in the view, only after the root view is inflated.         button = root.findViewById(R.id.button)         ...     }      override fun onViewCreated(view: View, savedInstanceState: Bundle?) {         super.onViewCreated(view, savedInstanceState)          // Not null at the point of time when onViewCreated fires         // but force unwrapped nonetheless         button!!.setOnClickListener { }     } }
  对于这种情况,这种转换不如使用 lateinit   理想,因为您不得不在访问按钮引用的每个位置都使用非 null 断言或安全调用运算符解封按钮引用。
  注意 :此示例并不意味着您应始终避免可为 null 类型。 通常,使用 lateinit  的这种 模式适用于预计从不为 null 但在其定义位置无法初始化的变量(View  引用就是 这种情况,这些引用在它们所在的 Fragment 或 Activity  内 无法初始化)。
  在其他情况下(根据应用的用例,null   是有效的变量赋值),将安全调用运算符 (?.) 与终止 elvis 运算符 (?:) 一起使用可能是一种更合适的方法,可以安全地解封可为 null 对象或将其强制转换为合理的非 null 默认值。在转换过程中,Android studio 没有足够的信息做出这一决定。虽然它默认为非 null 断言,但您应不断跟进并根据需要调整转换后的代码。

淘宝内测微信支付,双马握手言和,一个真正互联互通的时代到了淘宝开始内测微信支付了,这个消息引起市场的震动。过去两大巨头都是把彼此看成是最大的竞争对手,也是不断在自己体系内封杀对方的APP。在微信里面无法直接打开淘宝的链接,在天猫淘宝里面无为什么很多网友都说电脑用5年左右就该换了?摩尔定律,自行搜索,比如游戏做出来,很牛,但是特效太炫,8成平民玩家带不动,就只能优化,缩减,不然别人玩不了,就卖不动。同样的道理,你电脑512内存,4年以后都是2g内存为主流配置腾讯财报中关于支付的描述,值得细读支付巨头腾讯发布2021年年度报告。报告显示,腾讯金融科技与企业服务业务版块Q4收入480亿元,同比增长25。全年业绩收入1722亿元,同比增长34。金融科技服务收入增幅主要来源于藏不住了!学习亚马逊工作法的中国企业,已发生变化作者愈之微信fyu4134当前,国外疫情形式严峻,进出口贸易受到限制国内疫情零星散发,企业在逆境中艰难前行。国际SOS近日发布了2022年度全球风险展望,在调查中,企业机构认为,2iPhone15ProMax概念机不等iPhone14了,这款旗舰机才值得期待虽然距离iPhone14系列发布时间不到半年,但基本上已经实锤这款机型会采用打孔药丸屏的造型。至于其他方面不会有很大的改善,而且还可能会迎来涨价。但外媒提前曝光的这款iPhone1国海证券给予极米科技买入评级20220330国海证券股份有限公司孟昕对极米科技进行研究并发布了研究报告事件点评新品Z6XPro保持高性价比定位,产品力升级有望延续NEWZ6X高人气,本报告对极米科技给出买入评与发烧友对话的启发三听音乐时,音箱的防尘罩究竟要不要装上这几天与发烧友聊天的时候,又聊出一个值得与大家分享的话题。就是在听音乐的时候,我们到底是要把音箱的防尘罩装上,还是要把防尘罩打开?关于这个问题,很多发烧友估计都没有怎么思考过。就连犯啥大事了?小米前副总裁尚进被执行近2700万元CNMO新闻国产手机阵营中,小米的知名度极高,在手机市场占据很大的市场份额,很多人对小米旗下的机型钟爱有加。1月28日,小米集团通过内部文件宣布,原集团副总裁中国区新零售部总经理尚降价1500的小米11超大杯是否值得入手?最近安卓之光直降1500元的消息传遍整个数码圈,起初想可能更多人是嘲笑它跳水,但是这其实没有必要大惊小怪,毕竟小米12系列都推出来了,小米12超大杯也就是小米12Ultra都蓄势待小米官方称有自媒体长期造谣抹黑,大量不实谣言,此前已起诉科技犬市场有传言称监管层对当前科创板创业板在审涉及小米产业链的项目做了排查,涉小米产业链IPO政策受限,对此,证监会回应称我会关注到部分自媒体有关小米代表的产业链IPO政策有重大变哈勃望远镜发现迄今最遥远单颗恒星新华社洛杉矶3月31日电(记者谭晶晶)美国国家航空航天局3月30日表示,哈勃空间望远镜借助引力透镜效应发现了人类迄今观测到的最遥远单颗恒星。这颗恒星诞生于宇宙大爆炸后的不到10亿年
博思软件财政信息化龙头,业绩大增值得期待选股理由营收利润双增长成交量持续放大软件信息化证券简称博思软件评级A数据截止日期2019年9月30日单位亿元证券代码300525成立日期2001年所在地福建福州一主营业务主营业务软赢合科技国内锂电池设备次龙头,在手订单充沛业绩增长无虞独立客观第三方研究,为您筛选优质上市公司证券代码300457综合评级A一主营业务评分751业务分析公司主营业务是为锂电池生产厂商提供定制化的生产设备,基本覆盖了锂电池生产全流程,客华为P40Pro用镜头传颂三江源的自然秘境在遥远的青藏高原上,孕育着一片神秘的净土,那里冰峰雪山耸入苍穹,草原荒滩湿地沼泽紧相连属,珍稀的飞禽走兽神出鬼没,碧浏湖泊倒映蓝天,如梦似幻。这片净土叫做三江源。临近世界地球日,中把长焦镜头装进口袋华为P40超强实力助你成摄影大师五一小长假精彩来袭,你出去玩了吗?没关系,华为P40全新上市,作为带有长焦镜头的旗舰新品,可以让我们在保持距离的同时,清晰捕捉每一处自然风景。先带大家来简单了解华为P40的相机参数青春力量一刻尽显华为nova7系列助你成焦点你的20岁梦想是什么?你想对20岁的自己说些什么?5月4日,人民日报携手华为nova7系列推出热血短片我的20岁,展现了当代青年的热血青春故事。短片中,三位20岁青年纷纷讲述了自己远观不如近赏下单华为nova7系列近距离解读7号色五一小长假在这个炎热的夏季给了大家休闲放松的机会,不少人已经开始筹谋外出计划了。而外出必不可少的就是美美的自拍,这时候就需要考虑具有自拍和视频实力的好手机了。纵观市面上推出的智能手被强制阉割的几个功能,说到底都是为了赚钱而想出的法子随着技术的不断发展,智能手机也在不断更新。从外观到内部零件,手机的样式越来越多,但是现在有些手机已经强制性的给消费者删除了一些功能,其实说到底都是手机品牌为了赚钱而这样做的,让我们纤薄机身神仙颜华为nova7系列将游走在你的掌心近日,随着人气偶像易烊千玺正式宣布nova7号电台开播,有关于全新nova7系列新品的爆料越来越多。今天上午,在B站的华为终端账号下多了一则问答,问题是关于全新nova7系列手机的探索自然秘境与华为P40系列一同思考人与自然平衡的法则三江源地区是黄河澜沧江和长江的发源地,被称为中华水塔,是国家重要的生态安全屏障。三江源国家公园,每时每刻都是仙境般的存在临近今年世界地球日,中国国家地理用手机拍摄记录的一组三江源国光影梦幻指尖轻灵nova7系列这一次也太强了年轻人代表着与众不同的个性,也蕴藏着巨大的能量。想要圈粉年轻人,就要更好地解读圈层文化,了解年轻人群的喜好,建立更深层次的沟通,才能与年轻人产生良好的互动。说到更懂年轻人的品牌,华意想不到的超低价格快来华为美妆直播间抢nova7系列让自拍成为一种沟通,向来是华为nova系列的使命。新上市的nova7系列,不仅自拍强,而且后置影像能力也有了大幅度的提升。而nova7Pro搭载潜望式变焦镜头,可以实现最大50倍变