用字符串日期对列表排序 [Kotlin]
我有arraylist typeBeanArrayList 其中元素有些类似日期:例如: [30-03-2012, 28-03-2013, 31-03-2012, 2-04-2012, ...] 我如何排序降序. 代码: typeBeanArrayList = database.getSingleCustomerDetail(c_id!!) //get data from SQlite database creditListAdapter = CreditListAdapter(typeBeanArrayList) rv_credit_list!!.adapter = creditListAdapter //Bind data in adapter 预先感谢... 解决方案 谢谢@svkaka提供的信息. 我只注意到@svkaka的一行答案: .sortByDescending { it.length } . 我更改代码,例如: ty
50 2024-04-23
编程技术问答社区
在 Kotlin 中给定键列表对地图进行切分
给出了一张地图和键列表 val abc = mapOf(1 to "a", 2 to "b", 3 to "c") val keys = listOf(1, 2) 如何获得仅包含keys指定的键值对的地图?像 val ab = abc.slice(keys) // equivalent to mapOf(1 to "a", 2 to "b) 我正在寻找比 更优雅的东西 val ab = listOf(1, 2).map { it to abc[it] }.toMap() 例如,在长生不老药中: abc = %{1 => "a", 2 => "b", 3 => "c"} ab = Map.take(abc, [1, 2]) # equivalent to ab = %{1 => "a", 2 => "b"} 解决方案 您可以使用: val ab = abc.filterKeys { it in keys } 既然是kotlin,您甚至可以定
26 2024-04-22
编程技术问答社区
对象和数据对象有什么区别?
前几天,我注意到有时将data放在object>的面前,而其他时间则不: object A data object B object和a data object? 有什么区别 解决方案 在对象声明上允许data的事实实际上是一个错误( kt-6486 )应修复. data 是一个注释,使编译器生成equals,hashCode,hashCode ,toString,copy和componentN函数.当应用于对象声明的原因有两个原因: 时,这没有多大意义. 对象声明不能具有构造函数,所有这些函数都基于主构造函数中定义的属性. 在运行时只有任何对象的实例. 因此,不会生成componentN函数,copy无法正常工作,并且生成的equals/hashCode/toString实现将等于Any的默认值等效关于身份.
16 2024-04-22
编程技术问答社区
安卓本地库(.so)--未满足的链接错误
我最近创建并发布了一个Android App Bundle,其中包含用于所有处理器体系结构的本机库.在大多数设备上,一切正常.但是在某些设备上,我可以在Crashlytics控制台中看到此错误 致命例外:java.lang.unsatisfiedlinkerror dalvik.system.pathclassloader [DexPathlist [[zip file"/system/framework/org.apache.http.legacy.boot.jar.jar",zip file'/data/app/com.someaeapp-wau5dolmlmlmlvm_rvm_rvm_rvnbu1qscscg c.scscg = base.base.base.base.base.base.base.apk ],nativeLibraryDirectories = [/data/app/com.someapp-wau5dolmlvm_rvnbu1qscg ==/lib/arm64,/
2 2024-04-09
编程技术问答社区
Kotlin声明签名冲突?
我知道这是之前询问的,但是提供的解决方案不适用于此处. 所讨论的代码是一个简单的类: class BitString(bits: List) { constructor(bits: List): this(bits.map(::Bit)) constructor(bits: List): this(bits.map(::Bit)) var bits = bits } Bit是我实现的类. 但是我得到了熟悉的: Platform declaration clash: The following declarations have the same JVM signature ((Ljava/util/List;)V): constructor BitString(bits: List) defined in BitString constructor B
4 2024-04-05
编程技术问答社区
Kotlin noarg插件没有初始化默认值
你好,我有以下代码(JDK) build.gradle.kts plugins { kotlin("jvm") version "1.7.10" id("org.jetbrains.kotlin.plugin.noarg") version "1.7.10" application } noArg { annotation("com.MyAnnotation") } 类和注释 annotation class MyAnnotation @MyAnnotation class A( var a: String = java.util.UUID.randomUUID().toString() ) @MyAnnotation class Ab ( var a: String = java.util.UUID.randomUUID().toString(), var b: String ) 当我初始化 a 和
2 2024-04-05
编程技术问答社区
Kotlin反编译器产生错误的代码--有可能防止吗?
class CheckInventory(target: Target) : Command(target) { } 使用Intellij的" show kotlin bytecode "选项对上述Kotlin代码进行分解时,它会在 call上方生成语句: class CheckInventory extends Command { public CheckInventory(Target target) { Intrinsic.checkParameterIsNotNull(target, "target"); super(target); //error, must be first call } } 还有其他一些问题,例如生成带有访问修饰符的顶级类: : public class MyClass { } public final class MyClass$WhenMappings { //error, s
6 2024-04-05
编程技术问答社区
如何在Kotlin JVM中从字节数组中获取无符号整数?
kotlin 1.3引入无签名的整数类型似乎弄清楚如何从kotlin JVM中的a ByteArray获得一个未签名的整数. kotlin本地人方便 方法,但是Kotlin JVM不存在. val bytes: ByteArray = byteArrayOf(1, 1, 1, 1) val uint: UInt // = ??? 我在这里有什么选择?是否有比使用 解决方案 如评论中提到的,JVM版本的Kotlin中没有包装解决方案.与Kotlin/本机函数相同的扩展功能可能看起来像这样: fun ByteArray.getUIntAt(idx: Int) = ((this[idx].toUInt() and 0xFFu) shl 24) or ((this[idx + 1].toUInt() and 0xFFu) shl 16) or ((this[idx + 2].toUInt() and 0xFFu) s
2 2024-04-05
编程技术问答社区
将一个字节数组转换为十六进制字符串
令人惊讶的是(对我而言),此代码没有做我想做的事情: fun ByteArray.toHexString() : String { return this.joinToString("") { it.toString(16) } } 事实证明Byte 签名,因此您会获得单个字节的负面六角形表示,这会导致完全伪造的最终结果. 另外,Byte.toString不会在这里引导零. 最简单的(没有其他库,理想情况下没有扩展)是什么.最有效的修复? 解决方案 当我在Kotlin 1.3上,您也可能很快就对UByte感兴趣(请注意,这是一个实验功能.另请参见 kotlin 1.3m1 和 1.3m2公告) 例如: @ExperimentalUnsignedTypes // just to make it clear that the experimental unsigned types are used fun ByteArray.toHexStr
4 2024-04-05
编程技术问答社区
在MainActivity.kt中未解决的对按钮id的引用。
当我尝试在Kotlin的主要活动中直接键入按钮ID时,它不会自动拾取它,而是说未解决的参考,Android Studio是什么问题? 解决方案 在我的情况下,我遇到了同样的问题,并使用Android Studio 4.x解决了问题: 将其放入您的应用程序build.gradle或build.gradle.kts中.后者在我的情况下,因为我的项目是用Kotlin KMM制成的. buildFeatures { viewBinding = true } 这是我的完整build.gradle.kts,因此您可以看到它属于以下位置: plugins { id("com.android.application") kotlin("android") id("androidx.navigation.safeargs.kotlin") } dependencies { implementation(project(":share
6 2024-04-05
编程技术问答社区
在Kotlin中为一个按钮的状态提供不同的背景
我的项目中有一个按钮,可以这样工作: 该按钮针对每个状态 - 禁用(state_enabled="false")具有3种不同的设计,已启用,按下. 如果未选择文件,并且为其具有特定的设计,则此按钮仍将禁用.虽然,当选择文件时,此按钮将启用并切换到其他设计.并且按钮的突出颜色每次启用并按下按钮时都可以看到. 我到目前为止尝试过的是:
6 2024-04-05
编程技术问答社区
Kotlin中的按钮阵列
如何在Kotlin的Android Studio中创建一系列按钮?我已经在XML文件中创建了具有其ID的按钮,现在我想在Kotlin代码中使用相同的按钮与数组的元素. 我尝试了这样的事情: var buttons: Array = Array(25) ,然后: buttons[0] = btn1 // btn1 as the id from xml file 但是,XML的按钮名称在Kotlin文件中不起作用,我该如何使用它们? 解决方案 认为您有这样的布局:
2 2024-04-05
编程技术问答社区
按钮上的多个点击监听器
我想知道如何将多个点击事件添加到XML中定义的按钮,如前所述,在Java中,我们实现了View.onClickListener接口,并在onClick方法中进行了其余工作. 示例: @Override public void onClick(View v) { switch (v.getId()) { case R.id.oneButton: // do your code break; case R.id.twoButton: // do your code break; case R.id.threeButton: // do your code break; default: break; } } 我正在使用新的Kotlin制作基本的计算器应用程序,但似乎Kotlin没有这样的规定,而是我的代码看起来太长又冗
0 2024-04-05
编程技术问答社区
如何为我的回收器视图添加一个点击监听器(Android kotlin)。
我有一个带有2个元素的回收器视图.我想添加2个按钮以执行不同的操作(取决于回收器视图的哪个元素. settingsactiv.kt class SettingsActiv : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_settings) val arrow_backBtn = findViewById(R.id.settingsToolbarBtn) as Button arrow_backBtn.setOnClickListener{ startActivity(Intent(this, MainActivity::class.java))
2 2024-04-05
编程技术问答社区
滚动时将扩展浮动按钮改为正常大小
下午好,我一直在尝试添加我的扩展浮动按钮以在滚动时更改为普通的浮动按钮,但没有发生,它会延长,我不确定何时: 我的OrderDetail(我称之为扩展名): recyclerView.addOnScrollListener(FabExtendingOnScrollListener(extended_fab)) 应该在哪里扩展或挤压: class FabExtendingOnScrollListener( private val floatingActionButton: ExtendedFloatingActionButton ) : RecyclerView.OnScrollListener() { override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) { if (newState == Rec
0 2024-04-05
编程技术问答社区
不能在XML .Android studio中改变按钮的背景颜色。
我创建了TableLayout然后按钮.该按钮的颜色自动将紫色设置为紫色.所以我现在无法更改它们.这是我第一次来这里. 解决方案 不要使用其他任何东西 /> 而不是一个 /> 每件事都会很好地工作. 快乐的编码. 其他解决方案 它是紫色的,因为默认的背景色彩颜色. 你可以 : 更改**应用: Android的instad ** instad **背景彩色.在这种情况下,您的背景图将出现,而不是背景颜色 或 添加 app:backgroundTint="@null" 之后,您的背景颜色会出现. 或 您可以更改Android清单中的默认主题. 例如: android:theme="@style/Theme.AppCompat" 或
4 2024-04-05
编程技术问答社区
使用Kotlin为任何视图设置运行时保证金
我是Kotlin的初学者.我对这种语言不太熟悉.我正在做一个例子并使用代码.我只想将运行时保证金设置为任何视图.我还试图搜索它,但没有为此任务找到任何适当的解决方案. 要求 将运行时保证金设置为任何视图. 描述 我有一个在按钮上包含的XML文件,我想将运行时保证金设置为此按钮. 代码 我也尝试以下操作,但这不起作用. class MainActivity : AppCompatActivity() { //private lateinit var btnClickMe: Button //var btnClickMe=Button(); override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main)
0 2024-04-05
编程技术问答社区
无法生成应用程序捆绑包......与mergeReleaseResources有关
我正在尝试生成签名的捆绑包来发布我的第一个应用程序,但是我无法编译它,我已经寻找每个错误,找不到答案. 这是错误消息: Task :app:mergeReleaseResources C:\Users\TNS SAS\AndroidStudioProjects\numBus\app\build\intermediates \incremental\mergeReleaseResources\stripped.dir\layout \activity_main.xml:17:53: Id 'id/ button' has an invalid entry name ' button'. C:\Users\TNS SAS\AndroidStudioProjects\numBus\app\build\intermediates \incremental\mergeReleaseResources\stripped.dir\layout \activity_ma
8 2024-04-05
编程技术问答社区
Android 13(SDK 33):bundle.getSerializable(字符串)已弃用,什么是替代方案?
从API级别开始33捆绑类方法的getSerializable(String) getSerializable(String)不建议.文档建议改用getSerializable(String, Class).但是该功能仅可从API级别33获得. 我当前的代码: val model = args.getSerializable("key") as? Model 这是现在应该如何吗? val model = args.customGetSerializable("key") @Suppress("DEPRECATION") inline fun Bundle.customGetSerializable(key: String): T? { return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { ge
0 2024-04-05
编程技术问答社区