我尝试从MainActivity获取一些数据,并在第二个活动中显示它,我使用putExtra,但我仍然是初学者,对意图和数据了解不多 在MainActivity中,我应该输入我的出生年份和月份,然后单击按钮,向我显示结果,
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
override fun onStart() {
super.onStart()
getAGE.setOnClickListener {
@SuppressLint("SetTextI18n")
val Get_year_input = age_year_input.text.toString().toInt()
val getCurrentYear = Calendar.getInstance().get(Calendar.YEAR)
val finish_year_input = Get_year_input - getCurrentYear
val Get_month_input = age_month_input.text.toString().toInt()
val getCurrentMonth = Calendar.getInstance().get(Calendar.MONTH)
val finish_month_input = age_month_input.text.toString().toInt() - getCurrentMonth
// Send Data
var i_month = Intent()
i_month.putExtra("Month", finish_month_input)
setResult(Activity.RESULT_OK)
finish()
var getintent = Intent("ahsb3omrk.show.result")
}
}
}
第二活动:
class Second : AppCompatActivity() {
@SuppressLint("SetTextI18n")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_second)
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
if (requestCode == 4 && resultCode == Activity.RESULT_OK){
var showintent = Intent(data!!.extras.getString("Month"))
viewMonth.text = showintent.toString()
viewDay.text = "Hello"
}
}
}
答案 0 :(得分:1)
setResult()
和onActivityResult()
与这种情况无关。
您将数据传递给意图:
val i_month = Intent(applicationContext, Second::class.java)
i_month.putExtra("Month", finish_month_input)
startActivity(i_month)
以及在Second
活动的onCreate()
中:
val finishMonthInput = intent.getIntExtra("Month", -1)
现在在finishMonthInput
变量中,您将传递整数值;如果没有传递值,则将-1
传递出去。
从您的代码中删除以下行:
setResult(Activity.RESULT_OK)
............................
var getintent = Intent("ahsb3omrk.show.result")
以及onActivityResult()
类中的整个Second
方法。
答案 1 :(得分:0)
要在活动之间传递数据,请启动目标活动
使用startActivity(Intent)
。
拥有要发送的数据的Intent对象(使用putExtra()
方法)。
在第二个活动中,通过onCreate()
方法中的intent参数访问数据
The developer website上有一篇有关如何完成所有这些操作的文章。