微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

科特林EditText

如何解决科特林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",value1,value2,value3,value4,value5,value6)) 

谢谢。

解决方法

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{}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。