android - 使用完成功能将数据从活动发送回片段
问题描述
我曾尝试从从片段实例化的 Activity 发送数据。将数据从 Activity 发送回 Fragment。我尝试了以下代码
分段:
Instantiated the Fragment
Intent intent = new Intent(Fragement.this,Activity);
startActivity(intent);
活动:
Intent intent = new Intent(Activitiy.this, Fragment);
intent.putExtra("Sent", "Something");
setResult(RESULT_OK, intent);
finish();
将结果发送到片段
In Fragment trying to implement onActivityResult but not even able to define the method.
解决方案
startActivityForResult
使用如下方式调用您的活动
Intent intent = new Intent(Fragement.this, Activity);
startActivityForResult(intent, 1);
onActivityResult
在您的片段中实现结果
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK && requestCode == 1) {
// here you can retrieve your bundle data.
String yourdata = data.getStringExtra("Sent");
}
}
并在您activity
喜欢以下。
Intent intent = new Intent();
resultIntent.putExtra("Sent", "String data");
setResult(RESULT_OK, intent );
finish();
很重要
你必须override
onActivityResult
在你的活动中(在其中加载片段)
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
有关完整示例,请参阅此
推荐阅读
- sql-server - 为什么 count(1/null) 有效但 count(null/null) 无效?
- spring-mvc - spring 4.0如何配置ldap
- python - 列表中的列表;从第二个列表中提取(通过终端)
- ajax - 如何避免 Codeigniter Ajax 调用中的 CSRF 攻击?
- angular - 在嵌套组件中使用时服务为空
- c++ - 循环遍历 C++ 中的字符串
- laravel - 检查我的方法更新的付款日期()
- c++ - CRTP多级继承用另一个模板参数实例化中间类
- python - 方法覆盖期间的奇怪继承
- javascript - 动态表格下拉菜单无法正常工作