错误在ActionBar中的SearchView

我有一个搜索视图的操作栏,我有一个片段设置选项菜单。 在我的MainActivity SearchView工作正常,但在我的片段(我需要处理事件OptionMenuItem做些事情),setHasOptionMenu后,然后SearchView无法正常工作。 这是我的代码 MainActivity中的选项菜单 public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); // Create SearchView SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); searchView = (SearchView) menu.findItem(R.id.action_search).getActionView(); searchView.setSubmitButtonEnabled(false); searchView.setQueryHint(“Search Here”); searchView.setSearchableInfo(searchManager .getSearchableInfo(getComponentName())); SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String s) { return false; } @Override public boolean onQueryTextChange(String s) { if(s.length() > 0){ Tab1.listadaptor.getFilter().filter(s); Tab2.listadaptor.getFilter().filter(s); […]

0xFF0000FF整数字面值不符合期望的typeskotlin.Int

为什么不工作: var color: Int = 0xFF0000FF 为什么我必须调用toInt() var color: Int = 0xFF0000FF.toInt()

android中的setOnLongClickListener和kotlin

我怎样才能在我的ListView中的每个项目中使用setOnItemClickListner ? 我的xml: 这是我的适配器类 inner class mo3d1Adapter : BaseAdapter { override fun getItemId(p0: Int): Long { return p0.toLong() } override fun getCount(): Int { return listOfmo3d.size } var listOfMkabala = ArrayList() var context: Context? = null constructor(context: Context, listOfMkabaln: ArrayList) : super() { this.listOfMkabala = listOfMkabaln this.context = context } override fun getView(p0: Int, p1: […]

Kotlin + Maven组装:没有主要的清单属性

我有问题使用Maven将Kotlin项目与一些依赖关系组合到JAR文件中。 我如何将项目组装到JAR中: RightPanel -> MavenProjects -> Lifecycle -> package -> run 当我运行JAR文件时: java -jar path.jar 我得到以下错误: no main manifest attribute, in path.jar 我已经添加了像这样的maven-assembly-plugin : 所以我的插件目录看起来像这样: src/main/kotlin src/test/kotlin org.apache.maven.plugins maven-assembly-plugin 2.6 make-assembly package single ${main.class} jar-with-dependencies org.jetbrains.kotlin kotlin-maven-plugin ${kotlin.version} compile compile compile test-compile test-compile test-compile 这里定义的main.class属性: UTF-8 1.1.51 4.12 ru.icarumbas.main.HelloKt 一些事实: Hello.kt是入门级的,它很有趣main(…){} 当我解压缩JAR它有META-INF文件夹。 版本: 平台:Mac OS […]

更短的方式来做空检查

大概问过之前,却找不到它。 我正在写很多陈述: if (bar.getFoo() != null) { this.foo = bar.getFoo(); } 我想到了三元运算符,但是在我看来,这并没有让我更好: this.foo = bar.getFoo() != null ? bar.getFoo() : this.foo; 我的主要问题是我必须在两种情况下写两次bar.getFoo()。 当然,我可以写一个解决这个问题的帮手方法,但我想知道是否有更优雅的解决方案。 与以下不同: 避免!= null语句,因为该问题不处理为空值检查的值分配值。

科特林。 如何检查是否可以通过reflection字段?

我正在开发一个代码生成器,在运行时从类中获取数据。 该发生器只能与Kotlin一起使用。 目前,我正面临着这个问题,因为我不知道如何检查该字段是否可以空。 所以主要问题是如何通过reflection来实现这个检查?

当使用Java / Kotlin进行编程时,建议使用尾递归还是迭代版本? 性能有什么不同?

我试图了解编程中的良好实践,我坚持这个问题。 我知道,在Java中,递归函数可能是“一个痛苦的屁股”(有时),我尽可能实现该函数的尾部版本。 这是值得打扰还是应该以旧式的方式? 这两个函数(在Kotlin中)有什么区别: tailrec fun tail_fibonacci(n : BigInteger, fib1 : BigInteger = BigInteger.ZERO , fib2 : BigInteger = BigInteger.ONE) : BigInteger { return when(n){ BigInteger.ZERO -> fib1 else -> tail_fibonacci(n.minus(BigInteger.ONE),fib1.plus(fib2),fib1) } } fun iterative_fibonacci(n: BigInteger) : BigInteger { var count : BigInteger = BigInteger.ONE var a : BigInteger = BigInteger.ZERO var b : BigInteger […]

错误“不能为null”在Kotlin中

有一个.zip文件中有多个文件,我正在尝试获取。 试图解压缩文件提供了一个java.lang.IllegalStateException:zis.nextEntry不能为null。 如何正确地做到这一点? @Throws(IOException::class) fun unzip(zipFile: File, targetDirectory: File) { val zis = ZipInputStream( BufferedInputStream(FileInputStream(zipFile))) try { var ze: ZipEntry var count: Int val buffer = ByteArray(8192) ze = zis.nextEntry while (ze != null) { val file = File(targetDirectory, ze.name) val dir = if (ze.isDirectory) file else file.parentFile if (!dir.isDirectory && !dir.mkdirs()) throw FileNotFoundException(“Failed to […]

科特林代表团的expression,而不是固定的参考

假设我有一个非常复杂的规范定义为一个接口: interface Spec { fun sayHello() } 而一个标准的实现: class Impl(private val msg: String) : Spec { override fun sayHello() { println(msg) } } 现在假设我想创建一个实现此规范的类并委托给一个实现,但是确切的委托对象在整个对象的生命周期中都是可变的。 这是一个例子: class Derived(var target: Spec) : Spec by target 上面的例子的问题是构造函数参数target被设置为调用构造函数时的委托对象。 然后代理直接访问,而不是执行属性访问。 (这一点已经通过查看Kotlin生成的字节码得到证实。) 所以,即使在构造类后属性target被修改,委托也不会改变。 任何人都可以提供一种在Kotlin中执行这个委托的方法,而不必写出每一种方法吗? 一个理想的解决方案还允许委派一些像lambda或其他expression式一样的东西,只要在对象的整个生命周期中需要委托,就会被评估和用作委托。

Angular:如何在表单提交中发布文件到服务器

我有一个表单被张贴到我的后端(Kotlin,Spring Web)。 这个表格有一些文字输入,而且这个post完美无瑕。 但是当我添加一个文件输入时,该post停止工作,返回以下错误: {status: 400, error: “Bad Request”,…} error: “Bad Request” exception: “org.springframework.http.converter.HttpMessageNotReadableException” message: “Could not read document: No suitable constructor found for type [simple type, class com.test.InsertConfigCommand]: can not instantiate from JSON object (missing default constructor or creator, or perhaps need to add/enable type information?)↵ at [Source: java.io.PushbackInputStream@2cb43211; line: 1, column: 2]; nested […]