小编LPe*_*R90的帖子

android中可重复使用的拖放UI部件的代码设计

我是android的新手,为小学的孩子们写了一个学习应用程序.该应用程序用于练习简单的计算(加法和减法).

到目前为止,我已经完成了UI设计并编写了一个简单的概念验证实现来演示应用程序的基本用法.

其中一项活动(添加123和456)的设计如下所示:

|-----------------------------|
|  |c| 1   |c| 2   |c| 3      |
|                             |
|      4       5       6      |
|    --------------------     |
|   | r1 |  | r2 |  | r3 |    |
|                             |
|                             |
|  1  |  2  |  3  |  4  |  5  |
|  6  |  7  |  8  |  9  |  0  |
|    cancel    |     check    |
|-----------------------------|
Run Code Online (Sandbox Code Playgroud)

numblock中的数字(0-9)是可以拖放到进位字段(|c|)或结果字段(|r1|等)的视图.已经丢弃到进位或结果字段的值也可以移动(再次通过拖放)移动到另一个进位或结果字段.

将有多种练习模式,例如:

|-----------------------------|
|   1   +   9   =   |r1|r2|   |
| …
Run Code Online (Sandbox Code Playgroud)

user-interface android

9
推荐指数
1
解决办法
227
查看次数

是否有用于检查字符串参数模式的android注释?

问题

我正在使用Android和Kotlin,我希望有一个注释来检查常量String参数(对于函数或构造函数)是否与某个模式(正则表达式)匹配.我读到了关于模式注释的内容,但我不确定它是否适用于我的问题以及它是否适用于Android.

所以,当我有这样的代码

fun foo(@MatchesPattern("a*b") bar: String) = println(bar)
Run Code Online (Sandbox Code Playgroud)

然后

foo("aaaab")
Run Code Online (Sandbox Code Playgroud)

应该编译得很好,但是

foo("bb")
Run Code Online (Sandbox Code Playgroud)

不应该.

这可能,最好没有任何第三方库吗?如果是,我将如何实现这样的注释?(对不起,我不熟悉编写我自己的自定义注释)

背景

我希望将带有连字符分隔音节的单词作为参数传递,但是一个单词不应超过3个音节(这意味着每个单词最多2个连字符).我知道我也可以使用默认的params实现这一点,但我认为注释将是一种更优雅的方式来实现这一点.

java android annotations pattern-matching kotlin

6
推荐指数
1
解决办法
528
查看次数

Javascript:迭代对象并连接字符串

我有一个 Javascript 对象,其中包含其他对象。每个包含的对象都有一个name属性。

我现在想做的是将这些名称属性连接到一个字符串。'and'但是,我希望这些字符串在最后一个字符串之前用逗号分隔。

为了更好地理解,我想要迭代的对象如下所示:

var objects = {
    o1: {name: 'name1'}, 
    o2: {name: 'name2'},
    o3: {name: 'name3'}
};
Run Code Online (Sandbox Code Playgroud)

现在我最终想要的字符串是:'Concatenation of name1, name2 and name3'

到目前为止我尝试过使用angular.forEach

var myString = 'Concatenation of ';

angular.forEach(objects, function(o) {
    myString += o.name + ', ';
}
Run Code Online (Sandbox Code Playgroud)

不难注意到,我的字符串将变成'Concatenation of name1, name2, name3, '.

所以真正的问题是我如何检查我在对象中的哪个位置,并通过连接'and'而不是逗号或根本不使用逗号来做出适当的反应。我怎样才能做到这一点?

javascript string iteration string-concatenation angularjs

5
推荐指数
1
解决办法
2万
查看次数

Kotlin stlib 中是否有函数用于将 List<Pair<A, B>> 转换为 Pair<List<A>, List<B>>

我目前的代码具有与以下类似的机制

fun main() {
    val listOfLists = listOf(listOf("1234", "1", "42"), listOf("hello", "there"))
    
    val (lengths: List<List<Int>>, resultingListsOfLists: List<List<String>?>) =
        listOfLists
            .map {
                val lengths = it.map { it.count() }
                Pair(
                    lengths,
                    if (lengths.sum() > 5) {
                        // doing some transformation here in my original code,
                        // but for the sake of keeping it simple, just return `it`
                        it 
                    } else {
                        null
                    }
                )
            }
            .let { mapped ->
                println(mapped)
                Pair(mapped.map { it.first }, mapped.map { it.second })
            }
            
    println(lengths)
    println(resultingListsOfLists) …
Run Code Online (Sandbox Code Playgroud)

idioms transformation kotlin

1
推荐指数
1
解决办法
86
查看次数