android - android如何在 2个 activity Kotlin之间传递数据

我需要在两个上的activity 之间传递多个变量。

我知道如何在一个到另一个之间传递,但不是从第一个传递到第三个。

Activity 一个


btnNext.setOnClickListener {


 val i = Intent(this, Activity2::class.java)


 val variableOne= txtVariableOne.text.toString()


 i.putExtra("VARIABLEONE",variableOne)


 startActivity(i)


}




Activity 二


btnNext.setOnClickListener {


 val i = Intent(this, Activity3::class.java)


 val VariableTwo = txtVariableTwo.text.toString()


 i.putExtra("VARIABLETWO",variableTwo)


 startActivity(i)


}



Activity 3 ( 这是我需要的)


Log.d("DEBUG","Value:" + intent.getStringExtra("VARIABLEONE"))


Log.d("DEBUG","Value:" + intent.getStringExtra("VARIABLETWO"))



我需要从 Activity 3 访问 VariableOneVariableTwo

致谢

时间:

Activity 二


btnNext.setOnClickListener {


 val i = Intent(this, Activity3::class.java)


 val VariableTwo = txtVariableTwo.text.toString()



//THIS WHAT YOU NEED:


 i.putExtra("VARIABLEONE",intent.getStringExtra("VARIABLEONE"));



 i.putExtra("VARIABLETWO",variableTwo)


 startActivity(i)


}



如果你想将数据从第一个 Activity 传递到第三个,而不需要 Activity,那么我建议你使用 SharedPreferences

Activity 二


 override fun viewAllNotes() {


 val intent : Intent = Intent(this, ViewAllNotesActivity::class.java)


 intent. putExtra("VARIABLEONE",variableOne)


 startActivityForResult(intent, VIEW_ALL_REQUEST_CODE)


 }



 override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {


 super.onActivityResult(requestCode, resultCode, data)


 if (resultCode == Activity.RESULT_OK){


 if (requestCode == VIEW_ALL_REQUEST_CODE){


//get data here


 }


 }


 }


 }



Activity 三


@Override


public void onBackPressed() {


 Intent result = new Intent();


 result. putExtra("VARIABLEONE",variableOne) 


 setResult(Activity.RESULT_OK, result);


 this.finish();


 }



或者,你可以使用共享首选项存储值,并获取项目中任何位置的值

我可以说的和我们在java中传递的一样
有很多方法
在启动另一个 Activity 时,你可以通过 Intent,当你想象数据在启动 Activity 像波纹线时是正确的。


val intent = Intent(mActivity, LoginActivity::class.java);


intent.putExtra("keyName", data)


startActivity(intent)



使用偏好设置或者存储数据的另一种方式,你可以在需要的地方使用。

...