从另一个 activity 更新数据片段

Update data fragment from another activity

这似乎很容易,但我找不到解决方案,尽管我已经检查过: How to update Android fragment from activity? How to change fragment's textView's text from activity

我的问题是:

我有 4 个 class:

在MainActivity.java中,其内容2个Fragment包括HistoryFragment和ContactFragment。在 HistoryFragment 中,我调用 ConversationDialog 来显示对话框,输入对话框并按 OK 打开 CallActivity。

现在,我希望当我从 CallActivity 返回时,我必须用新数据更新 HistoryFragment。

但是经过研究,我做不到

请帮我做一下。

当您从 CallActivity 按下后退按钮时,将调用 MainActivity 的 onResume() 函数。逻辑是这样的。

执行以下步骤,

1.Implement HistoryFragment 中的 public 方法(即 updateContent())来更新您的内容。

2.Get 来自 MainActivity 的 onResume() 的 HistoryFragment 实例

FragmentManager fragmentManager = activity.getSupportFragmentManager();
HistoryFragment aFragment=fragmentManager.findFragmentByTag("Place the History fragment TAG here which you have used to load before");

3.After获取实例,通过实例调用相关方法

aFragment.updateContent()

开始呼叫时Activity 使用 startActivityForResults 像:

Intent intent = new Intent(this,  CallActivity.class);
startActivityForResult(intent, 1);

其中 1 是稍后用于取回您请求的数据的请求代码。

然后在你的onBackPress函数中调用Activity

Intent intent = new Intent();
intent.putExtra("id","value")
setResult(RESULT_OK, intent);        
finish();

然后执行此操作以获取您在之前 Activity

中的数据
public void onActivityResult(int requestCode, int resultCode, Intent data) {
  super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1) {
     if(resultCode == RESULT_OK){
      String stredittext=data.getStringExtra("id");
  }
} 

使用 "id" 是您的 value 的标识符,即 "value"。我想现在你可以使用 public 变量轻松完成将数据添加到历史片段的其余部分。