【问题标题】:Convert EditText Array to String Array - Kotlin Android将 EditText 数组转换为字符串数组 - Kotlin Android
【发布时间】:2018-09-27 11:35:54
【问题描述】:

我有一个 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))

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

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

我还需要将其用作vararg 参数。

【问题讨论】:

  • 我认为人们投了反对票,因为您没有提供/展示任何尝试或研究工作。一个 for 循环还不够小吗?
  • @vincrichaud 是的,我同意你的评论。我确实这么认为。
  • @vincrichaud 足够小,可以作为函数中的参数。我将编辑原始问题。
  • 现在完全有效的问题,+1 ...

标签: android arrays string android-edittext kotlin


【解决方案1】:

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

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

注意: map 函数返回一个列表。如果您想将其用作vararg 参数,您可以使用toTypedArray() 和扩展运算符* 来实现。代码如下:

val varargArray = textFields.map { it.text.toString() }.toTypedArray()
myFunction(*varargArray)

private fun myFunction(vararg list: String) {}

【讨论】:

  • 谢谢。这就是我想要的。另外,我需要提一下,我使用varargs 作为参数。所以也应该提到那个用例。
猜你喜欢
  • 1970-01-01
  • 2014-03-14
  • 1970-01-01
  • 2017-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-23
相关资源
最近更新 更多