Tag: kotlin

inheritance基本活动的导航抽屉

所以这个想法是通过导航抽屉来切换活动。 我创建了基本活动( TestActivity )与导航抽屉,它工作正常(它切换到其他活动正确)。 我希望所有活动都具有相同的抽屉式导航栏,但每个活动都需要有自己的应用栏。 但是我得到这个错误: 这个Activity已经有一个窗口装饰提供的操作栏。 请勿在您的主题中请求Window.FEATURE_SUPPORT_ACTION_BAR并将windowActionBar设置为false以代替使用工具栏。 。 它显示了当我打开一个基于TestActivity的活动。 我试图改变这第二个活动的主题为android:theme=”@style/AppTheme.NoActionBar”但是当我这样做,它只是停留在没有操作栏,它不会从TestActivityinheritance任何东西。 我正在使用Kotlin和Anko库。 open class TestActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelectedListener { val Ui by lazy { NavDrawerComponent() } lateinit var drawer: DrawerLayout lateinit var toogle: ActionBarDrawerToggle lateinit var navigation: NavigationView lateinit var toolbar: Toolbar override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_test2) Ui.setContentView(this) toolbar = Ui.customToolbar setSupportActionBar(toolbar) drawer […]

可靠地测量JVM分配

我有两个相同的算法的实现。 我想validation他们是否使用了比所需更多的内存,换句话说,他们分配完全相同数量的对象。 我目前的解决方案是通过threadMXBean.getThreadAllocatedBytes(threadId)来测量过程之前和之后分配的字节数,并将其用作内存占用量的近似值。 问题是这个方法是不稳定的,有时它会返回比它应该更多的数字。 它特别显示了不分配对象的算法。 一个有问题的例子是一个总和int[] 。 实际代码(Kotlin): class MemAllocationTest { private val threadMXBean = (ManagementFactory.getThreadMXBean() as? com.sun.management.ThreadMXBean) ?: throw RuntimeException(“Runtime does not support com.sun.management.ThreadMXBean”) /** * May run [block] several times * */ private inline fun measureAllocatedBytes(block: () -> Unit): Long { val threadId = Thread.currentThread().id val before = threadMXBean.getThreadAllocatedBytes(threadId) block() val after = […]

数据绑定:带有lambda值的ObservableField不能编译

我试图通过计算将一个参数作为参数的lambda来定义View的可见性。 顺便说一下 , 我正在使用Kotlin 。 在我的ViewModel我有: val customerPropVisibility: ObservableField<(KProperty1) -> Int> = ObservableField( { _ -> // body of the lambda }) 该View的绑定expression式如下所示: android:visibility=”@{vm.customerPropVisibility.invoke(title)}” vm和title被正确地声明为布局data标签中的variables。 在编译时,我得到两个错误: 1)不兼容的types:对象不能转换为Function1 2)不兼容的types:对象不能被转换为整数 第一种types只有一个错误,第二种types有几个错误。 第二种types的错误数量与布局xml文件中lambda的调用数量相同。 我试图解决这个问题: 显然,types1的错误可以通过重写ObservableField的get()方法来解决(使方法明确地返回Function1 )。 这是有效的,但是很难看,编译器在推断customerPropVisibility的types时应该这样做。 当然,这里有些不对劲。 types2的错误对我来说是一个谜,导致函数types(my lambda)显式地返回Int。 我认为这与Kotlin / Java的互操作性有关。 如果您遇到同样的问题,请分享解决问题的经验。 编辑: 由于这个bug还没有解决,我使用稍微不同的方法来达到相同的结果: 而不是将ObservableField的值设置为lambda,我将其设置为函数引用( ::getVisibility ),如下所示: fun getVisibility(prop: KProperty1): Int = propVisibilityValues[prop] ?: View.GONE val […]

如何获得ResultSet字符串数组?

我有一个查询是击中一个具有数组列的表。 当我正在处理我的记录,我想采取数组列的数据,并把它像一个字符串数组,并抓住第一个值。 我曾假设我可以做到以下几点: while (resultSet.next()) { val clients = resultSet.getArray(“clients”) println(clients[0]) } 但是当我这样做,我得到的错误: 错误:(34,3)Kotlin:未解决的参考。 由于接收器types不匹配,以下候选者都不适用:@InlineOnly public operator inline fun Map.get(key:Int):??? 在kotlin.collections中定义@SinceKotlin公共运算符乐趣MatchGroupCollection.get(name:String):MatchGroup? 在kotlin.text中定义 getArray返回typesArray! 所以我假设我可以通过索引访问值。 我需要做什么来访问这个值的数组?

如何使Kotlin / JavaScript中的按钮点击监听器事件?

在IntellJ IDEA里面,我在HTML文件中用一个id创建了一个按钮。 我想要实现的是将标题标签更改为“按钮点击”使用kotlin。 在搜索kolinlang.org网站和其他资源时,我无法find具体的事情简单的参考,我不知道是否有一个翻译的kotlin / JavaScript网站,所有这些都放在一起像这个网站,例如: https://www.w3schools的.com / JS / Default.asp的 谢谢

Kotlin JS用可选的参数错误重写“外部”函数

我拉着jQuery在我的项目中使用ts2kt。 基本工作正常,但是,我不知道如何调用这个函数(我只是想传递一个回调): fun done(doneCallback1: JQueryPromiseCallback? = definedExternally /* null */, vararg doneCallbackN: JQueryPromiseCallback): JQueryPromise JQueryPromiseCallback接口如下所示: external interface JQueryPromiseCallback { @nativeInvoke operator fun invoke(value: T? = definedExternally, vararg args: Any) } 我试图创建一个它的实例传入像这样: done(object : JQueryPromiseCallback { override fun invoke(value: Any?, vararg args: Any) { } }) 但是,我得到一个错误的调用函数: 使用可选参数重写“外部”function 生成的@nativeInvoke注释也被弃用,并给我一个我不明白的弃用信息: 使用动态的身体使用内联扩展function 我应该纠正ts2kt生成的文件? 如果是这样,怎么样? 我只是没有覆盖invoke方法的语法吗?

Kotlin中的Void返回types是什么意思?

我试图在Kotlin中创建没有返回值的函数。 而且我用Java编写了一个函数,但是使用了Kotlin语法 fun hello(name: String): Void { println(“Hello $name”); } 我有一个错误 错误:带有块体('{…}’的函数中需要“返回”expression式) 经过几次更改后,我得到了一个可为空函数作为返回types的工作函数。 但这不完全是我所需要的 fun hello(name: String): Void? { println(“Hello $name”); return null } 根据Kotlin文档,单元types对应于Java中的voidtypes。 所以在Kotlin中没有返回值的正确函数是 fun hello(name: String): Unit { println(“Hello $name”); } 要么 fun hello(name: String) { println(“Hello $name”); } 问题是: Void在Kotlin中意味着什么,如何使用它,以及这种用法的优点是什么?

如何在Kotlin中实现这个Java接口?

既然Kotlin没有原始的东西,那怎么能实现呢? public interface A { Object get(Integer i); Object get(int i); } 我无法更改Java代码,因为它是库中已编译的类文件。

任何人都可以在这里详细解释Kotlin / Native微调应用程序项目结构? 还有关于不同模块如何工作的细节

我想具体了解各个客户端模块如何使用通用模块。 哪些是所有客户端和服务器共享的真正常见部分。 谢谢。

Corda和解示例

在Corda中是否存在解决方案的工作代码示例,如以下video中所解释的: 我看到在corda-master有一个Obligations.kt文件。 有人可以请指导我一个相同的工作示例? 提前致谢。