Tag: kotlin android extensions

在Kotlin的ArrayList中插入或添加项目?

你好,任何人都可以帮助我,如何可以在arraylist kotlin语言增值

解析xml kotlin android

我有这样的XML: Сегодня вас могут здорово огорчить. Если от расстройства все начнет валится из рук, просто спокойно сядьте и тихонько подождите хорошей новости. Сегодня у вас могут возникнуть проблемы на личном фронте. Спасти вас от перспективы оказаться не у дел может сухой, рациональный и в высшей степени объективный подход к проблеме. 现在我正在学习kotlin whith翻新。 我包括解析XML的库,而不是我不能理解如何创建对象来解析这个XML。 我有对象: @Root(name […]

Java to Kotlin转换器和可空方法参数

我遇到了一个Java到Kotlin转换器不能将方法参数标记为可空的情况,使我失败的案例。 示例:使用registerActivityLifecycleCallbacks跟踪活动生命周期: registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() { @Override public void onActivityCreated(Activity activity, Bundle savedInstanceState) {} @Override public void onActivityStarted(Activity activity) {} @Override public void onActivityResumed(Activity activity) {} // … other overriden methods }); 将此代码粘贴到Kotlin结果中: registerActivityLifecycleCallbacks(object : Application.ActivityLifecycleCallbacks { override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle) {} override fun onActivityStarted(activity: Activity) {} override fun onActivityResumed(activity: Activity) {} override fun […]

什么是Kotlin后台?

作为Java开发人员,后台字段的概念对我来说有点陌生。 鉴于: class Sample { var counter = 0 // the initializer value is written directly to the backing field set(value) { if (value >= 0) field = value } } 这个后盾有什么好处? Kotlin的文档说: Kotlin中的类不能有字段。 但是,使用自定义访问器时有时需要有后台字段 。 为什么? 在setter中使用属性名称本身的区别是什么,例如。 class Sample { var counter = 0 set(value) { if (value >= 0) this.counter = value // […]

错误:执行任务’:app:clean’失败。 无法删除文件

我试图重建我的Android Studio Gradle项目(主要包含Kotlin代码),但在清理/重建过程中,它开始抛出UnableToDeleteFileException : Execution failed for task ‘:app:clean’. > Unable to delete file: C:\Users\User\KotlinGameEngine\app\build\intermediates\exploded-aar\com.android.support\appcompat-v7\23.0.1\jars\classes.jar 我试图改变我的项目的包结构后,开始发生。 不幸的是,我通过重命名和移动源文件夹,而不是通过Android Studio重构,这是一个坏主意。 我一直在寻找这个问题的解决办法,而这些都是我试图无效的东西: 做一个Gradle同步; 重新安装Java JRE和Java SDK; 重新安装最新版本的Android Studio(1.4); 回滚到以前的AS版本(1.3); 使AS缓存无效并重新启动; 删除项目目录中的gradle和.gradle目录; 删除我的用户目录中的.gradle目录; 从AS终端运行gradlew clean ; 手动将源代码复制到一个新项目(奇怪的是,它在某些项目中持续存在) 我已经尝试了一些成功的事情,但只能让我再次执行一次干净的重建,然后再次发生错误: 关闭AS,手动删除构建文件并再次打开它; 当AS正在运行时,会杀死java.exe进程(这在技术上可以每次都完成,但是这很枯燥,并且会降低构建过程的速度) 所以看起来,编译Java进程可能会因为某种原因而对构建文件进行锁定,但这也可能与Kotlin有关。 我有一个(更成熟的)我正在处理的Java Android项目,虽然我不能在清理时重现此错误。 这似乎只发生在我的Kotlin项目上。 有任何想法吗? 提前致谢。 更新: 我发现问题是由Kotlin Android插件引起的。 当我从模块的build.gradle文件中删除apply plugin: ‘kotlin-android’时,问题就消失了,当我重新插入时,它会回来。 随时提供任何洞察到这一点。 更新2: 最后的更新不是原因。 我发现如果一个项目包含一个Kotlin文件,那么重建和清理失败。 即使所有Kotlin文件都被删除,它仍然会失败,直到后台Java进程被终止,这意味着它在构建文件上有某种锁定。 我在这里提交了一个bug,更多的细节和步骤来重现错误: KT-9440

创建Kotlin对象的新实例

我有一个对象QuickSort ,我试图创建2个实例。 当我尝试创建2个单独的实例时,我可以看到它只使用一个实例,因为我在QuickSort类中有一个不准确的计数。 Kotlin在语法上不使用新的,所以我怎么去解决这个问题呢? object QuickSort { var count = 0; quickSortOne(…){ … count++ … } quickSortTwo(…){ … count++ … } } 这里是我如何创建我的2个实例。我的目标是让quickSort1和quickSort2是2个独立的实例。 var quickSort1 = QuickSort quickSort1.quickSortOne(…) var quickSort2 = QuickSort quickSort2.quickSortTwo(…) 尝试解决方案 :将QuickSort从一个对象转换为一个类。 这仍然导致使用相同的实例,如包含第一次调用计数的第二种方法的计数所示。 class QuickSort { var count = 0; quickSortOne(…){ … count++ … } quickSortTwo(…){ … count++ … } } … […]

在kotlin中平台types的智能广播

我正在使用kotlin创建我的适配器,它在android中扩展了BaseAdapter 。 下面是getView方法内部的代码 override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View? { var binding : ImageBinding var conView = convertView if(conView == null){ binding = DataBindingUtil.inflate(LayoutInflater.from(parent?.context), R.layout.image, parent, false) conView = binding.root; conView.tag = binding }else { binding = conView.getTag() as ImageBinding } return conView; } conView.tag = binding和binding = conView.getTag()突出显示粉红色的颜色。当我hover在conView.tag = binding与我的鼠标popup式消息智能转换到android.view.View! 。 […]

Kotlin自定义对话框指定为非null的参数

我得到这个错误: 引起:java.lang.IllegalArgumentException:指定为非null的参数为null:方法kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull,参数savedInstanceState 当我试图在Kotlin中膨胀自定义对话框时,我得到了我在对话框中的super.onCreate行上面写的错误。 对话框代码是: class Custom_Dialog_Exit_App(var activity: Activity)// TODO Auto-generated constructor stub : Dialog(activity, R.style.full_screen_dialog) { override fun onCreate(savedInstanceState: Bundle) { super.onCreate(savedInstanceState) requestWindowFeature(Window.FEATURE_NO_TITLE) setContentView(R.layout.custom_dialog_exit_app) activity.window!!.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT) initView() } fun initView() { initClicks() } fun initClicks() { } } 和init是: val omer = Custom_Dialog_Exit_App(this@MainActivity) omer.show() 请帮忙

仅在ViewHolder中单击侦听器有时会作出响应

我有以下一段代码。 下面你可以看到我的视图,适配器和我的XML。 我遇到的问题是点击有时不被执行。 只有当我也设置clicklisteners在我的viewholder textview和imageview比它的工作。 据推测,点击被textview和imageview吃掉。 任何人都知道为什么会出现这种情况。 class GeneralListItemViewHolder(val view: View) : RecyclerView.ViewHolder(view) { var item: GeneralItemViewModel? = null init { view.setOnClickListener { item?.method?.invoke() } } fun bind(item: GeneralItemViewModel) { this.item = item //Do some nice UI things } } 我的xml看起来像这样: 此外我的适配器代码包含以下内容: class GeneralItemAdapter(val items: List) : RecyclerView.Adapter() { override fun onBindViewHolder(holder: GeneralListItemViewHolder, position: Int) […]

Intellij IDEA中Kotlin项目的自动完成和代码分析非常慢

我们有一个关于IDEA的项目,它由几个中等大小的Java包和一个非常小的Kotlin包(5个文件)组成。 我注意到任何Java软件包的性能都很好,但是在自动完成,代码分析和编译Kotlin软件包的速度上,速度要慢10倍。 自动完成偶尔是非常缓慢的点popover无法加载所有的方法,它不得不加载一些API的增量。 每当我们的开发人员输入一个单词并等待自动完成,大约需要2-5秒才能显示预期的自动完成function。 有时,自动填充function太慢,无法显示任何内容,我们不得不取消单词并重新输入并等待。 在代码分析中出现同样的缓慢。 这显着影响了我的团队的生产力。 从我们的研究看来,这是一个众所周知的长期问题。 这也发生在我们的另一个小项目上。 我想知道我们能做些什么来解决这个问题? 谢谢。 Kotlin插件是最新版本:1.1.3-release-IJ2017.2-2 Intellij也是最新版本,2017年2.1(建立于2017年7月31日)