科特林EditText

时间:2020-09-17 21:24:27

标签: arrays kotlin android-edittext

嗨,我有以下问题,到目前为止,我一直在使用Java,但是我开始学习Kotlin。使用EditText时,如何存储多个整数或双精度值。使用Java,我这样做是这样的:

            double res;
            int f = 0;

            String[] values = editText.getText().toString().split("\\s");

            for (int i = 0; i < 6; i++) {

                res = Double.parseDouble(String.valueOf(values[f]));
                f++;

            }

            double value1 = Double.valueOf(values[0]);
            double value2 = Double.valueOf(values[1]);
            double value3 = Double.valueOf(values[2]);
            double value4 = Double.valueOf(values[3]);
            double value5 = Double.valueOf(values[4]);
            double value6 = Double.valueOf(values[5]); 

我使用“ for”并存储在下面的编辑文本中输入的每个值。如何使用Kotlin做到这一点? 使用Android studio,我可以转换代码,但我做到了,但是当我按下按钮以显示我的结果时,应用程序关闭:

        var res: Double
        var f = 0
        var i: Int

        val values: List<String> = edit_text.toString().split("\\s")

        for (i in 0..5) {
            res = values[f].toDouble()
            f++
        }

        val value1 = java.lang.Double.valueOf(values[0])
        val value2 = java.lang.Double.valueOf(values[1])
        val value3 = java.lang.Double.valueOf(values[2])
        val value4 = java.lang.Double.valueOf(values[3])
        val value5 = java.lang.Double.valueOf(values[4])
        val value6 = java.lang.Double.valueOf(values[5])

        textView.setText(String.format("%f, %f, %f, %f, %f, %f", value1, value2, value3, value4, value5, value6)) 

谢谢。

1 个答案:

答案 0 :(得分:0)

EditText与您要实现的目标无关,因为它是Andorid SDK的一部分,而不是Java或Kotlin。 据我了解,您想解析输入值,添加它们,还要显示它们。尝试类似的东西:

    val values: List<String> = edit_text.toString().split("\\s")
    
    val amountOfValues: Int= values.size
    val valuesAsDoubles: List<Double> = values.map{ it.toDouble() }
    val result: Double = valuesAsDoubles.sum()
    val stringToDisplay: String = valuesAsDoubles.joinToString("")
    textView.setText(stringToDisplay)

了解有关集合操作的信息,例如。 map{}