为什么需要代码B在输入参数中使用SQLiteDatabase。()?

代码A很好,为了简​​单起见,有人写了代码B. 我不明白为什么在代码B中的参数应该是(transactionFun:SQLiteDatabase.()->Unit) 我认为CodeF中的(transactionFun: ()->Unit)也不错,对不对? 代码A fun excuteTransaction(transactionFun:()->Unit){ val db = dbHelper.writableDatabase try{ db.beginTransaction() transactionFun() db.setTransactionSuccessful() }finally { db.endTransaction() } } 代码B fun SQLiteDatabase.executeTransaction(transactionFun:SQLiteDatabase.()->Unit){ try{ beginTransaction() transactionFun() setTransactionSuccessful() }finally { endTransaction() } }

期待会员减免

我想在构造函数中分配我的类variables,但我得到一个期待成员声明的错误 class YLAService { var context:Context?=null class YLAService constructor(context: Context) { this.context=context;// do something }}

从控制台循环字符串和总和奇数

fun main(args: Array) { println(“Number: “) val num = readLine()!!.toInt() var sum = 0 for (digit in num) { if (digit % 2 != 0) { sum += digit } } println(“$sum”) } 我需要这个循环遍历数字中的每一个数字,并将所有奇数的数字相加。 它给了我一个错误的数字“For循环范围必须有一个’iterator()’方法”

如何使用Kotlin设置OnEditorActionListener

所以我有这个Java代码: editText.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (actionId == EditorInfo.IME_ACTION_DONE) { doSomething(); return true; } return false; } }); 我已经设法得到这(我甚至不知道这是正确的方式): editText.setOnEditorActionListener() { v, actionId, event -> if(actionId == EditorInfo.IME_ACTION_DONE){ doSomething() } else { } } 但我得到一个错误Error:(26, 8) Type mismatch: inferred type is kotlin.Unit but kotlin.Boolean was expected […]

正则expression式匹配字符串

我想通过正则expression式提取两个数字“[0-9] +” var str = “ABcDEFG12345DiFKGLSG938SDsFSd” 我想提取的是“12345”和“938”。 但我不知道如何在Kotlin这样做。

如何访问Java中的Kotlin伴侣对象?

我把我的一个Java类转换成Kotlin和类如下。 class MainApplication : Application() { companion object { operator fun get(context: Context): MainApplication { return context.applicationContext as MainApplication } } } 它有一个静态函数get 。 我仍然有一个Java函数访问它。 MainApplication application = MainApplication.get(mContext); MainApplication在Java中是很好的。 但是当MainApplication在Kotlin时,上面的代码错误 Error:(27, 54) error: cannot find symbol method get(Context) 我怎样才能访问我的Java代码上面?

CorDapps如何处理传递依赖

目前在v2中,如果一个CorDapp引用一个与模块Y有传递依赖关系的模块X,使得Corda使用Y,那么如果Corda和X的各自版本Y不同,则可能会发生版本冲突。 一个例子是重用依赖于Jackson的现有内部库,包含业务和序列化逻辑。 在这种情况下,生成的CorDapp打包和Corda运行时似乎强制执行与Corda相关的Y版本。 如果Y的版本差异很大,我们可以得到像X中断这样的场景,因为Y不支持某些types和方法。 有没有一种通用的方式,可以使用gradle配置(或其他一些机制)来限制X的正确版本以供X使用,而不会影响Corda运行时?

更好的方式来格式货币输入editText?

我有一个editText,起始值是$ 0.00。 当您按1时,它将更改为$ 0.01。 按4,到$ 0.14。 按8,$ 1.48。 按退格键,$ 0.14等 这是有效的,问题是,如果有人手动定位光标,格式化会出现问题。 如果他们要删除小数,它不会回来。 如果他们把光标放在小数点前面并输入2,它将显示$ 02.00而不是$ 2.00。 如果他们试图删除$,它将删除一个数字,例如。 这里是我正在使用的代码,我会很感激任何建议。 mEditPrice.setRawInputType(Configuration.KEYBOARD_12KEY); public void priceClick(View view) { mEditPrice.addTextChangedListener(new TextWatcher(){ DecimalFormat dec = new DecimalFormat(“0.00”); @Override public void afterTextChanged(Editable arg0) { } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, […]

使用数据绑定库android:background @color但是不行

我想使用数据绑定库在我的视图上设置背景颜色,但它没有工作。 这是我的xml代码: android:background=”@{questionMode.correct ? @color/slp_color_ebfde5 : @color/slp_color_ffeded}” 如果我使用drawable而不是颜色,它将工作,虽然drawable是使用颜色值。

私人获得者和Kotlin财产的公共二传手

如何在Kotlin拥有一个私人的吸气(或没有它),但有一个公共二传手? var status private get 不起作用的错误: Getter visibility must be the same as property visibility 在我的情况下,原因是Java互操作:我希望我的Java代码能够调用setStatus而不是getStatus 。