代码之家  ›  专栏  ›  技术社区  ›  Adifyr

将EditText数组转换为字符串数组-Kotlin Android

  •  0
  • Adifyr  · 技术社区  · 6 年前

    我有一个EditText数组,我想将其转换为一个字符串数组,其中包含每个EditText的输入值。这是我的代码:

    val textFields = arrayOf<EditText>(dialogView.findViewById(R.id.et_name),
                dialogView.findViewById(R.id.et_address), dialogView.findViewById(R.id.et_phoneNo),
                dialogView.findViewById(R.id.et_amount), dialogView.findViewById(R.id.et_remark))
    

    如何用最少的代码获得EditText值的字符串数组?

    编辑: 基本上,我希望将代码作为参数放入函数中。我更愿意在不使用for循环的情况下完成它。可能是一个内联函数,它将给出一个数组,将原始元素(EditText)的每个元素(如函数块中所示)转换为字符串。到目前为止,我还没有找到任何方法(尽管结果可能很明显)。

    我还需要将其用作 vararg 参数

    1 回复  |  直到 6 年前
        1
  •  2
  •   Anthony Cannon    6 年前

    为此,必须通过执行以下操作将其映射到字符串数组中:

    val newTextFieldStringArray = textFields.map { it.text.toString() }
    Log.e("TEST", newTextFieldStringArray.toString()) // print it out
    

    注: map函数返回一个列表。如果你想用它作为 vararg 参数,可以使用 toTypedArray() 和一个spread操作符 * .代码如下:

    val varargArray = textFields.map { it.text.toString() }.toTypedArray()
    myFunction(*varargArray)
    
    private fun myFunction(vararg list: String) {}