, 10 10月 2022 作者 847954981@qq.com 后端学习 Kotlin安卓开发学习–Intent的使用 Intent是Android程序中各组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作...Intent大致可以分为两种:显式Intent和隐式Intent。 Intent存在多个构造函数的重载,其中最基本的一个Intent(Context packageContext, Class<?...之后我们就能使用startActivity方法来启动Activity,而这个方法正是接受一个Intent对象: val intent = Intent(this, SecondActivity::class.java...") startActivity(intent) } 隐式Intent存在别的用法。...val intent = Intent(Intent.ACTION_DIAL) intent.data = Uri.parse("tel:10086")
接下来我们想通过一个文件浏览器应用,练习文件系统操作,文件表示等功能,本文首先说明获取并表示文件系统内容的方法。还是先看演示视频: 构建FileStore表示画面 首先为准备画面布局: <?...= null){ FileListContainer.this.selectedListener.onItemSelected(FileListContainer.this...intent) { setUIContent(ResourceTable.Layout_browser_ability); initListContainer();...intent) { super.onForeground(intent); } FileListContainer.SelectedListener listener...listContainer, BrowserItem item) { HiLog.info(LABEL, "MainAbilitySlice.onItemSelected, item
我们的实现方法是对前面文章中用到的文件浏览器功能进行扩展,从而实现一个简单的照片浏览器功能。 增加照片浏览器画面 照片浏览器画面使用下面的布局。 <?...intent) { setUIContent(ResourceTable.Layout_browser_ability); String path = intent.getStringParam...intent) { super.onForeground(intent); } FileListContainer.SelectedListener listener...listContainer, BrowserItem item) { HiLog.info(LABEL, "MainAbilitySlice.onItemSelected, item...image_container布局动态装配在照片浏览器页面的布局文件中。
,使用Bundle对象作为容器,通过调用Bundle的putString先将数据存储到Bundle中,然后调用Intent的putExtras()方法将Bundle存入Intent中,然后获得Intent...(bundle); //取得启动该Activity的Intent对象 Intent intent=this.getIntent(); Bundle bundle=intent.getExtras()...城市下拉单列表添加监听事件 spinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener(){ @Override public void onItemSelected...spinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener(){ // @Override // public void onItemSelected...adapterView) { // } // }); //Spinner加载监听事件 spinner.setOnItemSelectedListener(this); } @Override public void onItemSelected
FreeBuf小科普 Intent Scheme URL攻击:这种攻击方式,利用了浏览器保护措施的不足,通过浏览器作为桥梁间接实现Intend-Based攻击。...Intent-based攻击:这种基于intent的安卓攻击手法很普遍,轻则导致应用程序崩溃,重则可能演变提权漏洞。...攻击实验背景介绍 在我研究Stock浏览器的事务流程标准时发现,如果让浏览器打开新选项卡并且使用file://协议,就可以通过网页打开本地文件。...采用Intent scheme URL进行攻击 据我们以上研究得出的结论,想通过Android 4.1.x-4.3的浏览器进行本地文件读取是不可行的,因为在这一系列版本中,本地文件不能从任意其他文件里读取内容...然而,metasploit团队的Joe Vennix表示,从intent scheme入手就可以轻松地发起攻击,附上相应文章,以下是文章中的POC: 该攻击POC的思路是: 受害者保存了包含恶意JS代码的
前不久我录制了一套讲解注解处理器的视频,当中用到了一个叫 “Tieguanyin” 的框架的简化版,这篇文章主要介绍下完整版。 项目是做什么的?...Intent intent = new Intent(this, UserActivity.class); intent.putExtra("age", age); intent.putExtra("name...(30, "bennyhuo", title = "Kotlin Developer") 这些方便快捷的方法帮我们处理了 Intent 传递参数的过程,当然,我们也在运行时对 Activity 的声明周期进行了监听...欢迎大家开 Issue,有空时我就会来迭代一下~ 其他相关 Apt-Utils:解决了类型在 Java 和 Kotlin 之间的统一性和兼容性问题,提供了注解处理器一些常用的工具方法,尤其适合同时生成...Java 和 Kotlin 代码的注解处理器项目。
, "木星", "土星"}; class MySelectedListener implements OnItemSelectedListener { public void onItemSelected...不信的话换成Kotlin试试?..., "土星") internal inner class MySelectedListener : OnItemSelectedListener { override fun onItemSelected...由于这里的Java代码逻辑实在拐弯抹角,又是数组适配器又是选择监听器的,因此Kotlin对这种玩意确实没有好办法。...如此方便易用的selector,竟然撇开了数组适配器和选择监听器,那么它又是怎么实现的呢?
,kotlin引入了property access syntax,它取代了字段和访问器方法,用这种方式进一步简化上面的代码: view.setOnClickListener { it.visibility...country } kotlin预定了很多扩展函数,下面就会用到其中的apply: 冗余对象名 编程中经常会遇到“对同一个对象做多次操作”的场景,比如: Intent intent = new Intent..."content","hello"); bundle.putString("sender","taylor"); intent.putExtras(bundle); startActivity(intent...); 其中,对象intent和bundle重复出现若干次,这对于极简主义的kotlin来说不能忍,它的表达方式如下: Intent(this,Activity1::class.java).apply...综合运用上述kotlin知识点实现这个需求之前,先来看看java是如何实现的: 先定义工具类,该工具类为传入的View分别设置触摸和单击监听器。在按下时播放动画,松手时反向播放动画。
此博客列出了升级到 CDP 后需要微调的容量调度器的某些配置,以模仿升级前的一些公平调度器行为。此微调可让您将 CDP 容量调度器设置与之前在公平调度器中设置的阈值相匹配。...(CS 的相对模式下) 升级到 CDP 后,我们可以使用上面建议的计算以及之前在 CDH 公平调度器中提供的配置来微调 CDP 容量调度器。...这种微调工作模拟了 CDP 容量调度器中的一些以前的 CDH 公平调度器设置。如果您的环境和用例不需要此类模拟,请放弃此微调练习。...下面提供了上面示例中使用的 CDH 公平调度器和微调 CDP 容量调度器的并排比较。...在本博客中,我们介绍了一些计算,可用作手动微调的起点,以将相对模式下的 CDP 容量调度器设置与之前在公平调度器中设置的阈值相匹配。后续博客文章将介绍权重模式下 CDP 容量调度器的类似微调。
什么是注解处理器 话说,最近尝试了一下写了个注解处理器,也就是我们常见的 apt,在 Kotlin 当中有个插件叫 kapt,说的就是注解处理器。注解处理器能干什么呢?...需要注意的是,这个注解处理器是 Java 编译器的特性,而 Java 编译器根本不知道 Kotlin 是神马东西,于是乎,如果大家在 Android 当中用到了 kapt 这个插件,你就会发现在 build...话说到这儿,不得不提一句,既然注解处理器是 Java 编译器的特性,于是乎,kotlinjs/kotlin native 是没有这一项功能的。...为什么 AutoService 不认识 Kotlin 写的 Processor? 我们写注解处理器,需要编写一个配置文件让编译器知道哪个是注解处理器的入口: ?...如何在注解处理器内识别 Kotlin 代码 既然都是 Java 文件,那么我怎么在注解处理器内识别出来哪些代码是 Java 的,哪些是 Kotlin 的呢?
: thisRef.intent?.extras?....,"123456") intent.putExtra("user",u) intent.putExtra("string","just a test")...startActivity(intent) } text2.click { val intent = Intent(this...使用 inline 修饰的函数,可以从编译器角度将函数的函数体复制到调用处实现内联。 在很多情况下,通过将 Lambda 表达式内联在使用处, 可以消除运行时消耗。...该系列的相关文章: 使用Kotlin高效地开发Android App(四) 使用Kotlin高效地开发Android App(三) 使用Kotlin高效地开发Android App(二) 使用Kotlin
)); 如果把刚才Java里的代码复制到Kotlin里,会需要转译,转译后的Kotlin代码如下: Kotlin //活动跳转,从MainActivity跳转到TestActivity,普通跳转...FLAG_ACTIVITY_NEW_TASK 使用,即setFlags的参数为“Intent.FLAG_ACTIVITY_CLEAR_TASK 启动模式在Java中是比较琐碎的,在Kotlin中则通过...Kotlin startActivity(intent.newTask())//新任务 startActivity(intent.singleTop())//置于栈顶...,此时Kotlin和Java一样都采取startActivityForResult方法,表示这次活动跳转要求处理返回信息。...} Kotlin override fun startActivityForResult(intent: Intent?
对于App开发者来说,该功能的实现非常普通,使用Java编码不过以下两行代码而已: Intent intent = new Intent(MainActivity.this, LinearLayoutActivity.class...倘若把这两行Java代码转换为Kotlin代码(复制这两行然后粘贴到kt文件中,Android Studio就会自动完成转换),则可看到活动跳转的Kotlin代码如下所示: val intent...= Intent(this@MainActivity, LinearLayoutActivity::class.java) startActivity(intent) 对比之下,这里的Kotlin...对象的putExtra方法,通过“putExtra(参数名, 参数值)”的方式传递消息,就像下面代码那样: Intent intent = new Intent(this, ActSecondActivity.class...点此查看Kotlin入门教程的完整目录
第十四章 使用Kotlin开发Android程序 正式上架:《Kotlin极简教程》Official on shelves: Kotlin Programming minimalist tutorial...Toast.makeText(this, "login succeed1", Toast.LENGTH_SHORT).show() val intent...= Intent(this,HomeActivity::class.java) startActivity(intent) }...依赖于: 1.ApiModule(提供okhttpClient、Retrofit、Api等) 2.AppModule(提供context对象(okhttp拦截器所需)) FuckGoodsComponent...示例教程 kotlin中文官网 kotlin官网 kotlin官网翻译 kotlin书籍 kotlin demo
问题描述: override fun onClick(widget: View) { val intent = Intent(AActivity.this, BActivity::class.java...) startActivity(intent) } 上面这个在kotlin中会报以下错: None of the following functions can be called with the...defined in android.content.Intent 分析问题: 这是因为kotlin中不能像java那样使用AActivity.this,kotlin无法识别为Context 解决问题:...startActivity(intent) } 网上还有一些kotlin优雅的写法: //正常跳转 startActivity() //携带参数 startActivity...A.B.C这三个页面,整个栈中就D页面 startActivity(intentFor().newTask().clearTask()) 但是试了一下发现报错了,原来这并不是kotlin
这在使用 Kotlin 的 Android 应用程序而不是服务器应用程序中特别有用。对于 Android 应用,我们自然希望减少应用启动时间,以便用户更快地看到应用内容,而不是等待初始加载屏幕。...(context: Context, user: User): Intent { val intent = Intent(context, ViewUserActivity::class.java...) intent.putExtra(KEY_USER, user) return intent } } override fun onCreate(savedInstanceState...<User (KEY_USER) //... } } 我们熟悉的使用: val intent = ViewUserActivity.intent(context, user) startActivity...(intent) 8.Global Constants(全局常量) Kotlin 允许跨越整个应用的全局常量。
(context, c)); } 如果上述代码使用 kotlin 来写呢?...简单理解为:当一个函数被标记为 inline 时,kotlin编译器 会在所有调用这个函数的位置,将方法函数替换为具体的函数体。...解析 通过查看 kotlin 字节码,我们可以得知 reified 的底层实现。...你可以理解这只是一个标记,其作用为告诉编译器 禁止java代码在编译期访问该方法 。...如果查看Kotlin的标准内联函数,你会发现,代码行数大部分只有1-3行,因为inline会增加代码量的生成,内联函数越复杂,相应的代码量也越高,具体的使用方面,可以参见这篇 Kotlin Vocabulary
本来是用 Java 实现的,后来想到最近自己也在熟悉 Kotlin,于是索性就改成 Kotlin 来实现了。...:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-android-extensions...= Intent(Intent.ACTION_VIEW) intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK intent.addCategory...而由于模拟器是基于 7.0 版本的,直接这样操作会报错。这个 Bug 大家可以参考stackoverflow 这个页面 好吧。为了防止大家忘记,再次张贴整个代码。...= Intent(Intent.ACTION_VIEW) intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK intent.addCategory
, 29 8月 2022 作者 847954981@qq.com 后端学习, 我的编程之路 Kotlin安卓开发学习(4) 前面我们学习了Kotlin 的基本语法,但我们最终的目的是作为安卓开发。...通过内部加入标签并在这个标签内添加 和 ...得到按钮的实例之后,我们通过调用setOnClickListener()方法为按钮注册一个监听器,点击按钮时就会执行监听器中的onClick()方法。...使用Kotlin编写的Android项目在app/build.gradle文件的头部默认引入了一个kotlin-android-extensions插件,这个插件会根据布局文件中定义的控件id自动生成一个具有相同名称的变量
领取专属 10元无门槛券
手把手带您无忧上云