我有一些意见的布局,其中一个有id title_whalemare import kotlinx.android.synthetic.main.controller_settings.* import kotlinx.android.synthetic.main.view_double_text.* class MainSettingsController : BaseMvpController() { val title: TextView = title_whalemare override fun getLayout(): Int { return R.layout.controller_settings } } 我试着用kotlin extensionsfind它,但我不能,因为我得到以下错误 由于接收器types不匹配,以下候选者都不适用 controller_settings.xml 我的错误在哪里?
我正在使用gradle并且正在尝试将kotlin添加到我的项目中。 但是,当我试图添加kotlin插件gradle它无法find它。 apply plugin: ‘groovy’ apply plugin: ‘kotlin’ buidscript { ext.kotlin_version = ‘1.0.1-2’ repositories { jcenter() mavenCentral() } dependencies { classpath ‘org.jetbrains.kotlin:kotlin-gradle-plugin:1.0.1-2’ } } repositories { jcenter() } dependencies { compile ‘org.codehaus.groovy:groovy-all:2.4.6’ compile ‘org.antlr:antlr4:4.5.3’ testCompile ‘org.spockframework:spock-core:1.0-groovy-2.4’ testCompile ‘junit:junit:4.12’ compile ‘org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version’ } 我得到这个错误 Caused by: org.gradle.api.plugins.UnknownPluginException: Plugin with id ‘kotlin’ not found. 问题是什么?
我是一个非常新的学习Kotlin。 到目前为止,一切都是可以理解的,到今天为止我已经遇到了一些威胁我的代码。 我搜索了很多,并对这段代码做了一些研究。 这是我需要了解的两个扩展函数 private fun T ?.useOrDefault(default: R, usage: T.(R) -> R) = this?.usage(default) ?:default 第二个 inline fun doubleWith(first: F, second: S, runWith: F.(S) -> Unit) { first.runWith(second) } 用法 a.useOrDefault(100) { getInteger(R.styleable.ArcSeekBar_maxProgress, it) } set(progress) { field = bound(0, progress, Int.MAX_VALUE) drawData?.let { drawData = it.copy(maxProgress = progress) } invalidate() } 我对lambda函数和高阶函数有了一个基本的理解,但是这个generics的函数实际上是作为一个初学者 提前感谢和赞赏
我确定这是某种forms的用户错误,但我不能搞清楚我做错了什么。 我有一个Kotlin数据类,这个类的构造方法如下: data class CronEvent( @JsonFormat( shape = JsonFormat.Shape.STRING, pattern = “yyyy-MM-dd’T’HH:mm:ss’Z'” ) @JsonProperty(“time”) val time: Date ) 这被ObjectMapper填充,接受一个json字符串作为有效载荷。 对于我的unit testing,我有一个SimpleDateFormat对象,我用相同的模式实例化。 val jsonStream = CronEventTests::class.java.classLoader.getResourceAsStream(“CronEventPayload.json”) val cronEvent = jsonStreamToCronEvent(jsonStream) // … val simpleDateFormat = SimpleDateFormat(“yyyy-MM-dd’T’HH:mm:ss’Z'”) val expectedDate = simpleDateFormat.parse(“2018-01-15T00:48:43Z”) cronEvent.time shouldBe expectedDate 在我的unit testing中加载的json文件( CronEventPayload.json )具有完全相同的日期字符串( 2018-01-15T00:48:43Z ),但我的测试失败。 java.lang.AssertionError: expected: Mon Jan 15 00:48:43 MST […]
我是Gradle和Android的新手,但是因为我已经把Kotlin添加到了我的项目中,所以我在Android Studio中遇到一个错误,我需要通过Gradle控制台,默认情况下不会给我任何好的堆栈跟踪或路径。 在现在出现错误的Gradle消息视图中,我只能得到 错误:执行任务’:app:kaptDebugKotlin’失败。 内部编译器错误。 查看日志了解更多详情 这是预期的function,因为它似乎在jetbrains示例项目中工作正常。 我的项目Gradle文件 buildscript { ext.kotlin_version = ‘1.1.4-2’ repositories { jcenter() } dependencies { classpath ‘com.android.tools.build:gradle:2.3.3’ classpath “org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version” // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() } } task clean(type: Delete) { delete […]
我知道在Kotlin中没有静态函数,所以我在OkHttpService.kt和my.kt中写了两个代码 我不知道哪个更好,你能告诉我吗? 谢谢! OkHttpService.kt class OkHttpService { companion object { fun httpGet(username: String, callback: Callback) { val fetchRepoUrl = “https://api.github.com/users/$username/repos?page=1&per_page=20” val client = OkHttpClient() val request = Request.Builder() .url(fetchRepoUrl) .build() client.newCall(request).enqueue(callback) } } } my.kt fun OkHttpService_httpGet(username: String, callback: Callback) { val fetchRepoUrl = “https://api.github.com/users/$username/repos?page=1&per_page=20” val client = OkHttpClient() val request = Request.Builder() .url(fetchRepoUrl) .build() […]
我希望将字符串{“name”:”My Settings 1″}传递给var aa 我必须使用代码var aa=” {\”name\”:\”My Settings 1\”} ” 当我使用Android Studio 3.0时,Kotlin中有一个简单的方法吗? 我知道适合XML内容
我想在按钮被点击时在我的android应用程序中发出请求。 在Python中,我可以这样做: import requests params = { ‘param1’:some_string, ‘param2’:some_int, ‘param3’:another_string } requests.post(“https://some.api.com/method/some.method”, params=params) 当我按下按钮时,我想在Kotlin中做同样的事情。 我试图用燃料和khhtp这样做,但没有成功很多 – 应用程序崩溃,只要我按下按钮,负责发送请求。 UPD:我用什么: AndroidManifest.xml中 … … 的build.gradle dependencies { … compile ‘com.github.jkcclemens:khttp:0.1.0’ … } MainActivity.kt fun request(){ var message = “message” var uid = “123456” //I wanted to use it as int, but mapOf didn’t allow me var token = […]
我有这样的代码: class Solution { fun strStr(haystack: String, needle: String): Int { return haystack.indexOf(needle) } } 在Python中,通常我可以在同一个文件中添加一些测试,并添加如下内容: if __name__ == ‘__main__’: unittest.main() 运行unit testing。 我如何在Kotlin中实现同样的目标?
我想在我的Kotlin Android应用程序中有一些静态定义它的内部状态的单例对象。 据我所知,Kotlin中的object是单身人士,所以我正在尝试这种方法: object MySingleton { public const val _DEF_DEFINITION_NO_ONE: Byte = 1; public const val _DEF_DEFINITION_NO_TWO: Byte = 2; (…) } 这很好,但问题是,为了能够使用这些定义,现在我必须首先创建Object的实例。 只是想知道如果我能够在Kotlin创建这种types的构造并有权访问这些定义而不创建MySingleton实例吗? 答案将是与其他语言中的static类似的companion object ,但它不允许在对象内部,只在类内。 当然,我可以保留这个定义或者使这些定义成为全局的,但是想知道是否可以按照我描述的方式去做? 或者,也许我应该设计另一种方式吗?