如何将两个活动的两个数字相加并输出到第三个活动

时间:2019-01-13 12:40:53

标签: kotlin

尝试学习Kotlin时,我给自己设定了一个我认为容易的任务-对我来说不是!

因此,我只想在活动1上输入一个数字,请按一个按钮将我带到活动2,在此我输入另一个数字,然后按另一个按钮将我带到活动3,该活动显示活动1中的数字总和和2。

我可以通过按按钮在活动之间移动,但是在该论坛上遇到类似问题后,我无法取得任何进展。

感谢您的帮助。

克里斯

谢谢,这是我到目前为止所拥有的-基本上,只是使按钮启动下一个活动的意图。我天真地认为,从最后的活动开始,就是引用数字的editText id,对它们求和并显示总和的情况。我现在知道我需要使用“ put.extra”,但是我不知道如何使用。我能找到的所有示例都是将文本从一个活动传递到另一个活动并显示它,而不是对其执行数学运算。

活动1

class Num1Activity : AppcompatActivity() {


    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_num1)


        nextNumBtn.setOnClickListener {
            val secondNum = Intent(this, Num2Activity::class.java)
            intent.putExtra("num1", uno.text.toString())
            startActivity(secondNum)
        }
    }
}

活动2

class Num2Activity : AppcompatActivity() {


    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_num2)

        gotoAnsBtn.setOnClickListener {
            val answer = Intent(this, AnswerActivity::class.java)
            intent.putExtra("num2", dos.text.toString())
            startActivity(answer)
        }
    }
}

最终活动

class AnswerActivity : AppCompatActivity() {



    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_answer)

    }
}

1 个答案:

答案 0 :(得分:0)

您可以在传递给下一个活动的意图中放置一个数字,然后在下一个活动中检索该数字。

例如,使用类似这样的内容将数字放入意图中:

intent.putExtra("num1", uno.text.toString().toInt())

然后在下一个活动中,您需要使用以下方法从意图中提取数字 getIntent()在科特林语中仅翻译为intent

因此,在您的下一个活动中,您将遇到类似这样的事情:

注意:intent可以为null,因此使用?

override fun onResume() {
    super.onResume()
    val startIntent = intent
    println(startIntent?.getIntExtra("number", 0))
}

顺便说一句,我将您拥有的代码放在onResume()方法中,而不放在onCreate()方法中。