Kotlin – 如何使用自定义名称制作地图代理?

我试图让我的头绕着财产代表,我有一个有趣的用例。 有没有可能有这样的事情: class MyClass { val properties = mutableMapOf() val fontSize: Any by MapDelegate(properties, “font-size”) } 这将允许我使用地图作为fontSize存储fontSize ,但使用自定义键(即“font-size”)。 如果用于存储诸如可以通过variables访问的CSS属性标记( fontSize )以用于代码的特定用例,但是在迭代地图( font-size: 18px; )时可以正确呈现。

如何以types安全的方式从通用列表中检索项目

我想把项目放在一个通用的容器中,但以types安全的方式检索它们。 容器在添加时会为每个项目添加一个序列号。 我试图在Kotlin中实现这个,但在pens()方法中遇到了问题。 有没有办法在函数参数中使用types信息来定义返回值的types? import java.util.concurrent.atomic.AtomicInteger import kotlin.reflect.KClass interface Item data class Pen(val name: String) : Item data class Eraser(val name: String) : Item data class Ref (val id: Int, val item: T) class Container { private val seq = AtomicInteger(0) private val items: MutableList<Ref> = mutableListOf() fun add(item: T) = items.add(Ref(seq.incrementAndGet(), item)) fun filter(cls: […]

动态字符串使用String.xml?

是否有可能在string.xml中的字符串值的占位符,可以在运行时分配值? 例: 一些字符串PLACEHOLDER1多一些字符串

如何处理LiveData的错误状态?

在某些情况下,新的LiveData可以用作RxJava的observables的替代品。 但是,与Observable不同的是, LiveData没有错误回调。 我的问题是:我应该如何处理LiveData错误,例如,当它由某个网络资源支持时,由于IOException可能无法检索?

如何更改可绘制波纹的纯色?

这里是我的波纹drawable,我想改变state_selected , 纯色 。 我试过的代码: RippleDrawable rippleDrawable = (RippleDrawable) textView.getBackground(); // assumes bg is a RippleDrawable int[][] states = new int[][]{new int[]{android.R.attr.state_selected}}; int[] colors = new int[]{R.color.white}; ColorStateList colorStateList = new ColorStateList(states, colors); rippleDrawable.setColor(colorStateList); 不幸的是它不工作..我错过了什么,这可能吗?

Android Studio如何在片段中加载animation

我在Android Studio项目上工作 每当我尝试使用animation加载片段时,我的应用程序崩溃。 即时通讯使用这些代码行,但它不会工作 final Animation showBtn = AnimationUtils.loadAnimation(_context_fra_home_v2, (R.anim.show_btn)); fabPlus.startAnimation(showBtn); 要么 final Animation showBtn = AnimationUtils.loadAnimation(this, (R.anim.show_btn)); fabPlus.startAnimation(showBtn); 我无法得到这个工作。 它说: required: ‘android.content.Context’ 这是什么意思 ?

Weather Underground API正在返回带有格式化字符(大量\ n \ t等)的JSON。 有没有办法从他们得到未格式化的JSON?

这是我从Weather Underground得到的回应: “\n{\n \”response\”: {\n \”version\”:\”0.1\”,\n \”termsofService\”:\”http://www.wunderground.com/weather/api/d/terms.html\”,\n \”features\”: {\n \”geolookup\”: 1\n }\n\t}\n\t\t,\t\”location\”: {\n\t\t\”type\”:\”INTLCITY\”,\n\t\t\”country\”:\”EG\”,\n\t\t\”country_iso3166\”:\”EG\”,\n\t\t\”country_name\”:\”Egypt\”,\n\t\t\”state\”:\”\”,\n\t\t\”city\”:\”Wadi El Natroon\”,\n\t\t\”tz_short\”:\”EET\”,\n\t\t\”tz_long\”:\”Africa/Cairo\”,\n\t\t\”lat\”:\”30.000000\”,\n\t\t\”lon\”:\”30.000000\”,\n\t\t\”zip\”:\”00000\”,\n\t\t\”magic\”:\”1\”,\n\t\t\”wmo\”:\”62357\”,\n\t\t\”l\”:\”/q/zmw:00000.1.62357\”,\n\t\t\”requesturl\”:\”global/stations/62357.html\”,\n\t\t\”wuiurl\”:\”http://www.wunderground.com/global/stations/62357.html\”,\n\t\t\”nearby_weather_stations\”: {\n\t\t\”airport\”: {\n\t\t\”station\”: [\n\t\t{ \”city\”:\”Wadi El Natroon\”, \”state\”:\”\”, \”country\”:\”Egypt\”, \”icao\”:\”\”, \”lat\”:\”30.40250015\”, \”lon\”:\”30.36333275\” }\n\t\t,{ \”city\”:\”Alexandria Borg El Arab\”, \”state\”:\”\”, \”country\”:\”EG\”, \”icao\”:\”HEBA\”, \”lat\”:\”30.91769981\”, \”lon\”:\”29.69639969\” }\n\t\t,{ \”city\”:\”Alexandria\”, \”state\”:\”\”, \”country\”:\”EG\”, \”icao\”:\”HEAX\”, \”lat\”:\”31.18166733\”, \”lon\”:\”29.94638824\” }\n\t\t]\n\t\t}\n\t\t,\n\t\t\”pws\”: {\n\t\t\”station\”: [\n\t\t]\n\t\t}\n\t\t}\n\t}\n}\n” 正如你所看到的,有一堆不应该在那里的角色。 是否有一个不同的查询来获得无格式的JSON或我必须解析所有这些垃圾之前,把它交给一个JSON解析器? 我在某种调试模式或什么?

确定一个实例是否是一个数据类的一个实例

鉴于以下类别 abstract class SomeAbstractClass { abstract val name: String } data class DataClass( override val name: String ) : SomeAbstractClass() class NoDataClass( override val name: String ) : SomeAbstractClass() 对于SomeAbstractClass任何实例,我可以确定它是否是一个数据类而不依赖于types检查? 一些背景:这似乎是把inheritance和数据类结合起来的最好方式, 正如不同的答案中所建议的那样 。 现在,在SomeAbstractClass的初始化块中,我想抛出一个exception,以防派生types不是数据类,以确保派生types的“正确”(不可变)实现。

Java:用分隔符连接基元数组

假设,我有一个数组: int[] arr = new int[] {1, 2, 3, 4, 5, 6, 7}; 我需要使用分隔符来连接它的元素,例如” – ” ,所以我得到这样的字符串: “1 – 2 – 3 – 4 – 5 – 6 – 7” 我怎么能这样做? PS:是的,我知道这个和这个post,但是它的解决方案不能用于一系列原语。

Android parcelable – 写入可以为空

我有我的parcelable课文章: class Article : Parcelable { var image: Long? = null var category: String? = null var videos: String? = null constructor(data: JSONObject) { if (condition) image = 50000L category = data.getString(“category”) videos = data.getString(“videos”) } private constructor(parcel: Parcel) { image = parcel.readLong() category = parcel.readString() videos = parcel.readString() } override fun writeToParcel(dest: Parcel, flags: […]