我必须在代码中经常进行这类检查,我想知道是否有一种干净的方法来获取资源,而不必编写if语句来检查版本。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
{
imageView.setImageDrawable(getDrawable(R.drawable.ic_circled_v));
}
else
{
imageView.setImageDrawable(getResources().getDrawable(R.drawable.ic_circled_v));
}
Run Code Online (Sandbox Code Playgroud) 我一直在使用 firebase,我注意到一些奇怪的事情。即使我完成了活动,我在活动中注册的价值事件侦听器之一也会被触发。我在'onDataChanged' 方法中添加了用于打开新活动的代码,因此即使我处于不同的活动中,也会打开新活动。这在应用程序中造成了大问题。我知道我必须调用 remove listener,但我希望在活动完成后会自动删除侦听器。有没有更简单的方法可以删除活动的所有值事件侦听器?提前致谢。
这是我的代码
fun main(args : Array<String>){
var someList : Array<String> = arrayOf("United","Chelsea","Liverpool")
//How do i print the elements using the print method in a single line?
}
Run Code Online (Sandbox Code Playgroud)
在java中我会做这样的事情
someList.forEach(java.lang.System.out::print);
我在尝试修改元素的地方有这两个功能。其中一个进行编译,其他则说“不能重新分配val”。以下功能有什么区别?为什么一个编译而另一个不编译?
编译的
fun <T> Array<T>.mapInPlace2(transform: (T) -> T) {
for (i in this.indices) {
this[i] = transform(this[i])
}
}
Run Code Online (Sandbox Code Playgroud)
那个说
Val无法重新分配
fun <T> Array<T>.mapInPlace1(transform: (T) -> T) {
for (i in this) {
i = transform(i);
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个日期选择器对话框,其主题是
<style name="DatePickerTheme" parent="Theme.AppCompat.Light.Dialog">
<item name="colorAccent">@color/that_blue_color</item>
</style>
Run Code Online (Sandbox Code Playgroud)
我创建此自定义主题是因为我想更改datePickerDialog的背景颜色。我设法改变了背景的颜色,选择器圆圈和按钮的文字颜色。但是我现在想更改CANCEL按钮的文本颜色,并OK保持按钮的文本颜色不变。我该怎么做?
我知道如何在 Java 中删除标志布局参数。它是这样的flags = flags & ~flag_not_wanted,但如果我将其复制到 Kotlin,它就无法编译。在 Kotlin 中这样做的方法是什么?