[英]How can I send string data from activity to fragment?
我有模块化应用程序。 它的“app”模块有一个片段,它在不同的模块中调用活动。 然后使用后退按钮,我想使用字符串数据返回到我的片段。 但是过一会就进入循环了。
此片段代码位于我称之为活动的“app”模块中:
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
button_info_idcard.setOnClickListener {
//start OcrActivity
//Toast.makeText(context, "fdglkds", Toast.LENGTH_SHORT).show()
val intent = Intent(activity, OcrActivity::class.java)
(activity as MainActivity2?)!!.startActivityForResult(intent, 101)
}
}
此活动代码位于不同的模块中,我尝试返回片段并进入循环:
imagebutton_ocr_back.setOnClickListener {
val intent = Intent()
intent.putExtra("TEST_TEXT",test)
setResult(101,intent)
finish()
}
如果数据来自活动,我希望在屏幕上看到 Toast 消息:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
Log.i("Muhittin","onActivityResult()")
if (requestCode == 101) {
val message = data!!.getStringExtra("TEST_TEXT")
Toast.makeText(context,message,Toast.LENGTH_SHORT).show()
}
}
注意:我不能在活动中直接调用片段,因为它会导致“循环依赖”,这是模块化结构中的架构问题。
你需要改变
(activity as MainActivity2?)!!.startActivityForResult(intent, 101)
到
startActivityForResult(intent, 101)
因为如果您使用activity.startActivityForResult()
意图将在活动类中调用onActivityResult()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.